- 조건문 - if, switch
조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 수 있다.
처리해야 할 경우의 수가 많으면 switch문이 효율적이나 사용에 제한이 많다.
- If문 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package java_bible_ch4; import java.util.Scanner; public class FlowEx { public static void main(String[] args) { int input = 0; System.out.print("숫자 하나를 입력하세요 : "); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); input = Integer.parseInt(temp); if (input == 0) { System.out.println("입력하신 숫자는 0입니다."); } else { System.out.println("입력하신 숫자는 0이 아닙니다."); System.out.printf("입력하신 숫자는 %d입니다.", input); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package java_bible_ch4; import java.util.Scanner; public class FlowEx01 { public static void main(String[] args) { int score = 0; char grade = ' '; System.out.print("점수를 입력하세요 : "); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); score = Integer.parseInt(temp); if (score >= 90) { grade = 'A'; } else if (score >= 80) { grade = 'B'; } else if (score >= 70) { grade = 'C'; } else { grade = 'D'; } System.out.println("당신의 학점은 " + grade + " 입니다."); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package java_bible_ch4; import java.util.Scanner; public class FlowEx02 { public static void main(String[] args) { int score = 0; char grade = ' '; char opt = '0'; System.out.print("점수를 입력하세요 : "); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); score = Integer.parseInt(temp); System.out.printf("당신의 점수는 %d 입니다.%n", score); if (score >= 90) { grade = 'A'; if (score >= 98) { opt = '+'; } else if (score < 94) { opt = '-'; } } else if (score >= 80) { grade = 'B'; if (score >= 88) { opt = '+'; } else if (score < 84) { opt = '-'; } } else { grade = 'C'; } System.out.printf("당신의 학점은 %c%c 입니다.%n", grade, opt); } } | cs |
- Switch문 예제
Switch문은 하나의 조건식으로 많은 경우를 처리할 수 있고 표현도 간결하다. 다만 switch문은 제약조건이 있어 경우의 수가 많아도 어쩔 수 없이 if 문으로 작성해야 하는 경우가 있다.
제약조건
- switch문의 조건식 결과는 정수 또는 문자열(jdk 1.7 부터 지원)이어야 한다.
- case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package java_bible_ch4; import java.util.Scanner; public class FlowEx03 { public static void main(String[] args) { int month = 0; System.out.print("현재 월을 입력하세요(숫자) : "); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); month = Integer.parseInt(temp); switch(month) { case 3: case 4: case 5: System.out.println("봄 입니다."); break; case 6: case 7: case 8: System.out.println("여름 입니다."); break; case 9: case 10: case 11: System.out.println("가을 입니다."); break; case 12: case 1: case 2: System.out.println("겨울 입니다."); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.Scanner; public class FlowEx04 { public static void main(String[] args) { int user, com; System.out.print("가위(1) 바위(2) 보(3) 중 하나를 입력하세요 : "); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); user = Integer.parseInt(temp); com = (int) (Math.random() * 3) + 1; // 1,2,3 중 하나가 com에 저장 System.out.println("user : " + user); System.out.println("com : " + com); switch (user-com) { case 2: case -1: System.out.println("user가 졌습니다."); break; case 1: case -2: System.out.println("user가 이겻습니다."); break; case 0: System.out.println("비겻습니다."); } } } | cs |
자바의 정석 3판을 정리하며 공부하고 있습니다.
'문돌이의 IT > 자바(Java)' 카테고리의 다른 글
자바의정석 Chapter 5 배열 Array (1) (2) | 2017.08.18 |
---|---|
자바의정석 Chapter 4 반복문 for, while, do while (0) | 2017.08.16 |
자바의정석 Chapter 3 연산자 (0) | 2017.08.03 |
자바의정석 Chapter 2 변수 (0) | 2017.08.02 |
자바의정석 Chpater1 자바를 시작하기 전에 (0) | 2017.08.01 |