yoni

[14] 다양한 메소드의 리턴 실습 ★ 본문

java of educational by contents

[14] 다양한 메소드의 리턴 실습 ★

yoni-1117 2018. 12. 1. 17:20
[과제 1] 하나의 수를 전달하여 짝수인지 홀수인지 판별하는 프로그램을 제작하세요.
   
[실행 화면]

수: 12
판정: 짝수

수: 11
판정: 홀수

 
 
▷ /src/oop/EvenOdd.java
- System.out.println() 사용하면 안됩니다.
- evenodd(...) 메소드
  input   : 숫자 1개
  process: 짝수인지 홀수인지 판단, 2로 나누어 나머지가 0이면 짝수, 그렇지 않으면 홀수
  return  : "짝수" 또는 "홀수"   

-----------------------------------------------------------------------------------
package oop;
 
public class EvenOdd {


  public String evenodd(int su) {
    String str = "";
    if (su % 2 == 0){
      str = "짝수";
    } else {
      str = "홀수";
    }
    
    return str;
  }
  
 

 
}
  
  
-----------------------------------------------------------------------------------


▷ /src/oop/EvenOddUse.java
- main() 메소드 생성
-----------------------------------------------------------------------------------
package oop;
 
public class EvenOddUse {
 
  public static void main(String[] args) {
    EvenOdd evenOdd = new EvenOdd();
    int su = 12;
    
    String str = evenOdd.evenodd(su);
    System.out.println("수: " + su);
    System.out.println("판정: " + str);
    
  }
 
}
 
 
   
 
-----------------------------------------------------------------------------------
 
 
 

[과제 2] 두개의 수를 전달하여 범위를 구하는 프로그램을 제작하세요.
    
[실행 화면]

70
7
-----
63

7
70
-----
63
  
  
▷ /src/oop/Range.java
- System.out.println() 사용하면 안됩니다.
- calc(...) 메소드
  input   : 숫자 2개
  process: 범위를 구합니다. 음수 발생시 양수로 변경하여 처리합니다. 
  return  : 정수

-----------------------------------------------------------------------------------
package oop;
 
public class Range {



  public int calc(int i, int j) {
    int range = 0;
    
    range = i - j;
    
    if(range < 0){
      range = range * -1;
    }
    
    return range;
  }
 

 
}
  
 
-----------------------------------------------------------------------------------
  
  
▷ /src/oop/RangeUse.java
- main() 메소드 생성
-----------------------------------------------------------------------------------
package oop;
 
public class RangeUse {
 
  public static void main(String[] args) {
    Range range = new Range();
 
    int val= range.calc(7, 70);
 
    System.out.println(7);
    System.out.println(70);
    System.out.println("-----");
    System.out.println(val);
 
    System.out.println();
 
    val= range.calc(70, 7);
 
    System.out.println(70);
    System.out.println(7);
    System.out.println("-----");
    System.out.println(val);
  }
 
}
      
   
   
-----------------------------------------------------------------------------------
 
 
 

[과제 3] 하나의 수를 전달하여 1부터 전달된 수까지의 합을 구하는 프로그램을 제작하세요.
   
[실행 화면]

i=1
sum=1
i=2
sum=3
i=3
sum=6
1부터 3까지의 합: 6
 
i=1
sum=1
i=2
sum=3
i=3
sum=6
i=4
sum=10
i=5
sum=15
1부터 5까지의 합: 15
  
▷ /src/oop/Sum.java
- System.out.println() 사용하면 안됩니다.
- hap(...) 메소드
  input   : 숫자 1개
  process: for문을 이용하여 1부터 주어진수까지의 합을 구합니다.
  return  : 정수

-----------------------------------------------------------------------------------
package oop;
 
public class Sum {

  public int hap(int no) {
    int sum = 0;
    
    for (int i=1; i<= no; i++) {
      sum = sum + i;
      
    }
    
    return sum;
  }



 
}
   
 
-----------------------------------------------------------------------------------


▷ /src/oop/SumUse.java
- main() 메소드 생성
-----------------------------------------------------------------------------------
 
package oop;
public class SumUse {
 
  public static void main(String[] args) {
    Sum sum = new Sum();
    int hap = 0;
    hap = sum.hap(3);
    System.out.println("1부터 3까지의 합: " + hap);
    
    System.out.println();
    
    hap = sum.hap(5);
    System.out.println("1부터 5까지의 합: " + hap);
 
  }
 
}
 
  
 
-----------------------------------------------------------------------------------
 
   
   
 
[과제 4] 하나의 수를 전달하여 1부터 그 수까지 2, 3, 4의 배수의 갯수를 구하는
          프로그램을 제작하세요.
   
[실행 화면]

1부터 2016까지 2, 3, 4의 배수의 갯수: 168
 
 
▷ /src/oop/Times.java
- System.out.println() 사용하면 안됩니다.
- count(...) 메소드
  input   : 숫자 1개
  process: for문을 이용하여 1부터 주어진수까지 2, 3, 4의 배수의 갯수를 구합니다.
  return  : 정수

-----------------------------------------------------------------------------------
package oop;
 
public class Times {

    int count = 0;
    for (int i=1; i<= no; i++){
      if(i % 2 == 0 && i % 3 == 0 && i % 4 == 0){
        count = count + 1;
      }
    }
    
    return count;
  

 
}
 
   
-----------------------------------------------------------------------------------


▷ /src/oop/TimesUse.java
- main() 메소드 생성
-----------------------------------------------------------------------------------
package oop;
 
public class TimesUse {
 
  public static void main(String[] args) {
    Times times = new Times();
    
    int count = times.count(2016);
    System.out.println("1부터 2016까지의 2,3,4의 배수의 갯수: " + count);
 
  }
 
}
  
 
-----------------------------------------------------------------------------------
 
  
 
[과제 5] 월을 전달하면 영어로 변환된 단어를 리턴하는 프로그램을 제작하세요. 
   1) translation(...) 메소드
      input   : int형 숫자 월
      process: 숫자를 영어로 변역
      return  : 영어로 번역된 문자열 리턴


       1월 - January  (Jan.)
       2월 - February  (Feb.)
       3월 - March (Mar.)
       4월 - April (Apr.)
       5월 - May
       6월 - June (Jun.)
       7월 - July (Jul.)
       8월 - August (Aug.)
       9월 - September (Sept.)
       10월 - October (Oct.)
       11월 - November (Nov.)
       12월 - December (Dec.)

  2) 배열 값으로 나열한 형태
      "January", "February", "March", "April", "May", "June", "Juliy", "August", "Setember", "October", "November", "December"

 

  

[실행 화면]
1월: January     
2월: February 
3월: March
 
 
▷ /src/oop/Month.java
- 출력을 구현하지 않습니다. System.out.println() 사용하면 안됩니다.
- if ~else 문을 생략하거나 사용 할 수 있습니다.
- 메소드명은 자유롭게 지정합니다.

-----------------------------------------------------------------------------------
package oop;
 
public class Month {
  public String translation(int month) {
    // 0 ~
    String[] months = {"January", "February", "March", "April", "May", "June", "Juliy", "August", "Setember", "October", "November", "December"};
    
    return months[month-1];
    
  }
  
}
-----------------------------------------------------------------------------------


▷ /src/oop/MonthUse.java
- 변수를 메소드로 전달하고 값을 리턴받아 출력, Cally By Value
- main() 메소드 생성

-----------------------------------------------------------------------------------
package oop;
 
public class MonthUse {
 
  public static void main(String[] args) {
    Month month = new Month();
    
    String mon = month.translation(1);
    System.out.println("1월: " + mon);
 
    mon = month.translation(2);
    System.out.println("2월: " + mon);
    
    mon = month.translation(3);
    System.out.println("3월: " + mon);
    
  }
 
}
 
 
 
-----------------------------------------------------------------------------------
 


 
 
[과제 6] 점수를 전달하면 아래의 조건에 따라 합격/불합격을 출력하는
프로그램을 제작하세요.

[조건]
평균 60점 이상이면 합격, 미만은 불합격

[실행 화면]
평가 점수: 90 100 95
결과 -> 합격

평가 점수: 50 50 50
결과 -> 불합격

▷ /src/oop/Pass.java
- 출력을 구현하지 않습니다. System.out.println() 사용하면 안됩니다.
- 메소드명은 자유롭게 지정합니다.
- 정수 3개를 메소드로 전달합니다.

-----------------------------------------------------------------------------------
 
package oop;
 
public class Pass {

  public String test(int java, int html5, int jsp) {
    String result = "";
    int tot = java + html5 + jsp;
    int avg = tot / 3;
    
    if (avg >= 60){
      result = "합격";
    } else {
      result = "불합격";
    }
    
    return result;
  }
 
}
 
  
 
-----------------------------------------------------------------------------------


▷ /src/oop/PassUse.java
- main() 메소드 생성

-----------------------------------------------------------------------------------
package oop;
 
public class PassUse {
 
  public static void main(String[] args) {
    Pass pass = new Pass();
    String result = pass.test(90,  100, 95);
    System.out.println("평가 점수: 90, 100, 95");
    System.out.println("결과 -> " + result);

    System.out.println();
 
    result = pass.test(50,  50, 50);
    System.out.println("평가 점수: 50, 50, 50");
    System.out.println("결과 -> " + result);    
  }
 
}
 
 

-----------------------------------------------------------------------------------
 
 
 
 

[과제 7] 적금 계산 프로그램을 제작하세요.

1. 메소드로 값을 전달하여 수령할 금액을 return 받아 출력합니다.
   1) deposit(...) 메소드
      input   : 금액, 개월    ← argument, 인수
      process: 수령액 = 금액 * 개월   
      return  : 수령액   

   2) home(...) 메소드
      input   : 주택 가격    ← argument, 인수
      process: 매달 수령하는 주택 연금 = 주택 가격의 3.9 % / 12
      return  : 매달 수령하는 주택 연금

   
[실행 화면]

1) 20 만원, 12 개월: 2400000 원
2) 30 만원, 12 개월: 3600000 원
3) 1억 5천만원 주택 연금 수령액: 487500 원
4) 2억원 주택 연금 수령액: 650000 원
5) 2억 5천만원 주택 연금 수령액: 812500 원
6) 3억 5천만원 주택 연금 수령액: 1137500 원
 
 
▷ /src/oop/Calc.java
- 출력을 구현하지 않습니다. System.out.println() 사용하면 안됩니다.

-----------------------------------------------------------------------------------
package oop;
 
public class Calc {

  public int deposit(int money, int month) {
    int tot = money * month;
    return tot;
  }

  public int home(int price) {
    double price2 = price * 0.039;
    int month = (int) (price2 / 12);
    
    return month;
  }

 
}
 
 
 
-----------------------------------------------------------------------------------


▷ /src/oop/CalcUse.java
    - 변수를 메소드로 전달하고 값을 리턴받아 출력, Cally By Value
    - main() 메소드 생성

-----------------------------------------------------------------------------------
package oop;
 
public class CalcUse {
 
  public static void main(String[] args) {
    Calc calc = new Calc();
    int deposit = calc.deposit(200000, 12);
    System.out.println("1) 20 만원, 12 개월: "+deposit+" 원");
 
    deposit = calc.deposit(300000, 12);
    System.out.println("2) 30 만원, 12 개월: "+deposit+" 원");
 
//    int receive = calc.home(150000000);
//    System.out.println("3) 1억 5천만원 주택 연금 수령액: " + receive + " 원");
    
//    receive = calc.home(200000000);
//    System.out.println("4) 2억원 주택 연금 수령액: " + receive + " 원");
//
//    receive = calc.home(250000000);
//    System.out.println("5) 2억 5천만원 주택 연금 수령액: " + receive + " 원");
//    
//    receive = calc.home(350000000);
//    System.out.println("6) 3억 5천만원 주택 연금 수령액: " + receive + " 원");
  }
 
}
 

 
 
 
-----------------------------------------------------------------------------------
 
 
 

[과제 8] BigIssue 판매액을 구하는 프로그램을 제작하세요.
 
* BigIssue는 노숙자가 판매하는 잡지로 판매액의 50%가 판매인에게 지급됩니다.

[실행 화면]
종각역: 20000 수당: 10000

영풍문고: 30000 수당: 15000

종로3가: 25000 수당 12500

▷ /src/oop/Issue.java
- 출력을 구현하지 않습니다. System.out.println() 사용하면 안됩니다.
- 판매액을 받아 50%의 수당을 리턴하는 메소드를 제작하세요.
- 메소드명은 자유롭게 지정합니다. 

-----------------------------------------------------------------------------------
package oop;
 
public class Issue {

  public int sale(int amount) {
    int tot = (int) (amount * 0.5);
    
    return tot;
  }
 
}
    
-----------------------------------------------------------------------------------


▷ /src/oop/IssueUse.java
- main() 메소드 생성

-----------------------------------------------------------------------------------
package oop;
 
public class IssueUse {
 
  public static void main(String[] args) {
    int amount = 0; // 판매 금액
    int su = 0;  // 판매 수당 
 
    Issue issue = new Issue();
    amount = 20000;
    su = issue.sale(amount);
    System.out.println("종각역: " + amount + " 수당: " + su);
    
    amount = 30000;
    su = issue.sale(amount);
    System.out.println("영풍문고: " + amount + " 수당: " + su);
    
    amount = 25000;
    su = issue.sale(amount);
    System.out.println("종로3가: " + amount + " 수당: " + su);    
  }
 
}
 
  
-----------------------------------------------------------------------------------
 
 


Comments