코드 작성
package method_basic; public class Test { public static void main(String[] args) { // 메서드 정의 및 호출 연습 // 1. 매개변수가 없고, 리턴값도 없는 메서드 호출 // => "Hello, World!" 문자열을 10번 반복 출력하는 hello() 메서드 호출 hello(); // hello() 메서드 호출 // hello() 메서드를 호출할 때마다 "Hello, World!" 문자열을 10번씩 출력 가능 hello(); System.out.println("------------"); // => 구구단 2단 ~ 9단까지 출력하는 gugudan() 메서드 호출 gugudan(); System.out.println("===================="); // 2. 매개변수는 없고, 리턴값만 있는 메서드 호출 // => sum() 메서드를 호출하여 리턴되는 정수를 int형 변수 result 에 저장 후 출력 // int result = sum(); // System.out.println("1 ~ 10 까지 정수의 합 = " + result); System.out.println("1 ~ 10 까지 정수의 합 = " + sum()); // => 자신의 이름을 리턴하는 니이름이뭐니() 메서드 호출하여 리턴되는 이름을 출력 String name = 니이름이뭐니(); System.out.println("너의 이름은 : " + name); System.out.println("===================="); // 3. 매개변수만 있고, 리턴값은 없는 메서드 호출 // 이름을 전달하면 전달받은 이름을 출력하는 printName() 메서드 호출 printName("홍길동"); System.out.println("---------"); // 정수 1개를 전달하면 전달받은 정수에 대해 "홀수" 와 "짝수" 판별하여 출력하는 checkNum() 메서드 호출 checkNum(9); System.out.println("---------"); // ----------------- 숙제 -------------------- // 문자열 1개를 전달하면 해당 문자열을 10번 반복 출력하는 print() 메서드 호출 // ex) 메서드에 "Hello, World!" 문자열 전달 시 "Hello, World!" 문자열 10번 출력 print("Hello, World!"); System.out.println("---------"); // 정수 1개를 전달하면 "Hello, World!" 문자열을 전달받은 정수만큼 반복 출력하는 print2() 메서드 호출 // ex) 메서드에 5 전달 시 "Hello, World!" 문자열 5번 출력 print2(15); // 정수 1개를 전달하면 전달받은 정수에 해당하는 구구단을 출력하는 gugudan2() 메서드 호출 // ex) 메서드에 2 전달 시 구구단 2단 출력 gugudan2(5); // ------------------------------------------- // 4. 매개변수도 있고, 리턴값도 있는 메서드 호출 // 정수 1개를 전달하면, "홀수" or "짝수" 를 판별하여 문자열로 리턴하는 checkNum2() 메서드 호출 // ex) 2 전달 시 "짝수" 가 리턴되어야 한다! String result = checkNum2(5); System.out.println("판별 결과 : " + result); // 정수 1개(x)를 전달하면, 1 ~ x 까지의 합을 계산하여 리턴하는 sumX() 메서드 호출 // => ex) 100 을 전달하면 1 ~ 100 까지의 합(5050) 이 리턴됨 int total = sumX(100); System.out.println("1 ~ 100 까지의 합 = " + total); // ------------------------------------------- // 추가5. 매개변수가 복수개인 메서드(리턴값은 무관) 호출 // 문자열 1개, 정수 1개 전달 시, 문자열을 정수에 해당하는 횟수만큼 출력하는 print3() 메서드 호출 // ex) "Hello, World!" 와 10 전달 시 "Hello, World!" 문자열을 10번 출력(리턴값 없음) print3("Hello, World!", 10); // 정수 2개 전달 시, 두 정수 중 더 큰 값을 리턴하는 max() 메서드 호출 // (두 정수의 값이 같은 경우에는 둘 중 아무거나 리턴) // ex) 10, 20 전달 시 20 리턴됨 int maxNum = max(100, 20); System.out.println("최대값 = " + maxNum); } // main() 메서드 끝 // 추가5. 매개변수가 복수개인 메서드(리턴값은 무관) 정의 // 문자열 1개, 정수 1개 전달 시, 문자열을 정수에 해당하는 횟수만큼 출력하는 print3() 메서드 정의 public static void print3(String str, int count) { for(int i = 1; i <= count; i++) { System.out.println(i + " : " + str); } } // 정수 2개 전달 시, 두 정수 중 더 큰 값을 리턴하는 max() 메서드 정의 public static int max(int num1, int num2) { // 최대값 판별 if(num1 > num2) { // num1 이 num2 보다 클 경우 return num1; // num1 리턴 } else { // num1 이 num2 보다 크지 않을 경우(= 두 수가 같거나 num2 가 더 클 경우) return num2; // num2 리턴 } } // ---------------- 메서드 정의 ------------------ // < 메서드 정의 기본 문법 > // [제한자] 리턴타입 메서드명([매개변수...]) { // // 메서드가 호출되었을 때 실행할 코드들... // [return [값];] // } // ----------------------------------------------- // 1. 매개변수가 없고, 리턴값도 없는 메서드 정의 // => "Hello, World!" 문자열을 10번 반복 출력하는 hello() 메서드 정의 public static void hello() { // for문을 사용하여 "Hello, World!" 문자열 10번 반복 출력하기 for (int i = 1; i <= 10; i++) { System.out.println(i + " : Hello, World!"); } } // 구구단을 2단 ~ 9단까지 차례대로 출력하는 gugudan() 메서드 정의 public static void gugudan() { for (int dan = 2; dan <= 9; dan++) { System.out.println(" < " + dan + " 단 >"); for (int i = 1; i <= 9; i++) { System.out.println(dan + " * " + i + " = " + (dan * i)); } System.out.println(); } } // ------------------------------------------------------------------ // 2. 매개변수는 없고, 리턴값만 있는 메서드 정의 // 1 ~ 10 까지 정수의 합(55)을 계산하여 리턴하는 메서드 sum() 정의 public static int sum() { // 반복문(for)을 사용하여 1 ~ 10 까지 정수의 합 계산하여 누적변수 total 에 누적 int total = 0; // 누적 변수 for (int i = 1; i <= 10; i++) { total += i; } // 정수의 합을 리턴값으로 지정하여 리턴 return total; // 정수의 합 55 를 가지고 호출한 곳으로 되돌아 감 } // 자신의 이름("홍길동")을 리턴하는 니이름이뭐니() 메서드 정의 public static String 니이름이뭐니() { return "홍길동"; } // ------------------------------------------------------------------ // 3. 매개변수만 있고, 리턴값은 없는 메서드 호출 // 이름을 전달받아 String 타입 변수 name 에 저장 후 출력하는 printName() 메서드 정의 public static void printName(String name) { // String name = "홍길동" 과 동일 System.out.println("전달받은 이름 : " + name); } // 정수 1개 전달받아 int 타입 num 에 저장 후 "홀수" or "짝수" 를 판별하여 출력하는 checkNum() 메서드 정의 public static void checkNum(int num) { if(num % 2 == 0) { System.out.println(num + " = 짝수!"); } else { System.out.println(num + " = 홀수!"); } } // 문자열 1개를 전달받아 10번 출력하는 print() 메서드 정의 public static void print(String str) { for (int i = 1; i <= 10; i++) { System.out.println(i + " : " + str); } } // 정수 1개를 전달받아 "Hello, World!" 문자열을 전달받은 정수만큼 반복 출력하는 print2() 메서드 정의 public static void print2(int count) { for(int i = 1; i <= count; i++) { System.out.println(i + " : Hello, World!"); } } // 정수 1개를 전달하면 전달받은 정수에 해당하는 구구단을 출력하는 gugudan2() 메서드 정의 public static void gugudan2(int dan) { System.out.println(" < " + dan + " 단 >"); for(int i = 1; i <= 9; i++) { System.out.println(dan + " * " + i + " = " + (dan * i)); } } // ------------------------------------------------------------ // 4. 매개변수도 있고, 리턴값도 있는 메서드 정의 // => 정수 1개를 전달받으므로 int형 매개변수 1개 선언 필요 // => 문자열을 리턴해야하므로 String 타입으로 리턴타입 명시 public static String checkNum2(int num) { System.out.println("전달받은 정수 = " + num); // if문과 else 문을 조합할 경우 if문 조건식 결과가 true 일 때와 false 일 때 // 즉, 모든 경우에 return 문이 항상 실행되므로 정상적인 리턴이 이루어짐 // if(num % 2 == 1) { // 홀수 // return "홀수"; // } else { // 짝수 // return "짝수"; // } // 만약, if문과 else if 문을 조합할 경우 // if문 조건식 결과가 false 이고, else if문 조건식 결과가 false 일 때 // return 문을 실행하지 못할 경우 문법 오류가 발생하게 된다! // => 해결책1. else 문을 추가하여 return 문을 작성하기 // if(num % 2 == 1) { // 홀수 // return "홀수"; // } else if(num % 2 == 0) { // 짝수 // return "짝수"; // } // => 해결책2. 조건식에 따라 각각 다른 리턴값을 변수에 저장한 후 조건문이 끝난 후 최종적으로 리턴 String result = ""; // 리턴값을 저장할 변수 선언 if(num % 2 == 1) { // 홀수 // "홀수" 문자열을 리턴값 저장 변수에 저장 result = "홀수"; } else if(num % 2 == 0) { // 짝수 // "짝수" 문자열을 리턴값 저장 변수에 저장 result = "짝수"; } // 저장된 결과값을 항상 리턴(if문 실행 여부와 관계없이 실행됨) return result; } // 정수 1개(x)를 전달받아, 1 ~ x 까지의 합을 계산하여 리턴하는 sumX() 메서드 정의 public static int sumX(int x) { int total = 0; for(int i = 1; i <= x; i++) { total += i; } return total; } } // Test 클래스 끝
[코드 설명]
출력 결과
1 : Hello, World!
2 : Hello, World!
3 : Hello, World!
4 : Hello, World!
5 : Hello, World!
6 : Hello, World!
7 : Hello, World!
8 : Hello, World!
9 : Hello, World!
10 : Hello, World!
1 : Hello, World!
2 : Hello, World!
3 : Hello, World!
4 : Hello, World!
5 : Hello, World!
6 : Hello, World!
7 : Hello, World!
8 : Hello, World!
9 : Hello, World!
10 : Hello, World!
------------
< 2 단 >
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
< 3 단 >
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
< 4 단 >
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
< 5 단 >
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
< 6 단 >
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
< 7 단 >
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
< 8 단 >
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
< 9 단 >
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
====================
1 ~ 10 까지 정수의 합 = 55
너의 이름은 : 홍길동
====================
전달받은 이름 : 홍길동
---------
9 = 홀수!
---------
1 : Hello, World!
2 : Hello, World!
3 : Hello, World!
4 : Hello, World!
5 : Hello, World!
6 : Hello, World!
7 : Hello, World!
8 : Hello, World!
9 : Hello, World!
10 : Hello, World!
---------
1 : Hello, World!
2 : Hello, World!
3 : Hello, World!
4 : Hello, World!
5 : Hello, World!
6 : Hello, World!
7 : Hello, World!
8 : Hello, World!
9 : Hello, World!
10 : Hello, World!
11 : Hello, World!
12 : Hello, World!
13 : Hello, World!
14 : Hello, World!
15 : Hello, World!
< 5 단 >
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
전달받은 정수 = 5
판별 결과 : 홀수
1 ~ 100 까지의 합 = 5050
1 : Hello, World!
2 : Hello, World!
3 : Hello, World!
4 : Hello, World!
5 : Hello, World!
6 : Hello, World!
7 : Hello, World!
8 : Hello, World!
9 : Hello, World!
10 : Hello, World!
최대값 = 100
나의 소감
메서드는 한마디로 음.... 총의 총알같다
준비를 해두었다가 발사(호출) 하면 탁 튀어나오는 총알!
'JAVA' 카테고리의 다른 글
클래스 2 | 21/11/18 (0) | 2022.01.06 |
---|---|
클래스 | 21/11/18 (0) | 2022.01.06 |
메서드 | 21/11/16 (0) | 2022.01.06 |
do ~ while문 | 21/11/15 (0) | 2022.01.06 |
for문 활용 | 21/11/15 (0) | 2022.01.06 |