▷ switch문 : 괄호 안의 변수 값에 따라 해당 case로 가서 실행문을 실행합니다.
▷ 변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행하며, default 생략 가능합니다.
▷ break는 다음 case를 실행하지 않고 switch 문을 빠져나갈 때 사용합니다.
▷ break가 없다면 다음 case가 연달아 실행됩니다.
◎ switch문 사용 예시
public class switchCharExample {
public static void main(String[] args) {
char grade = 'B';
switch(grade) {
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
// 자바 12이후 사용법 Expressions(표현식)
// switch(grade) {
// case 'A', 'a' -> System.out.println("우수 회원입니다.");
// case 'B', 'b' -> System.out.println("일반 회원입니다.");
// default -> System.out.println("손님입니다.");
// }
}
}
4. for문
▷ for문 : 실행문을 여러 번 반복하므로 코드를 간결하게 만들어줍니다.
▷ 초기화식이 가장 먼저 실행, 조건식을 평가해서 true이면 실행문 실행, false이면 for문 종료하고 블록을 건너뜁니다.
▷ 조건식이 true가 되어 실행문을 다시 실행하면 증감식이 실행됩니다.
▷ 다시 조건식을 평가, 평가 결과가 다시 true이면 앞의 내용을 다시 반복하고 false이면 for문 종료합니다.
▷ 초기화식에서 부동 소수점을 쓰는 float 타입을 사용하지 않도록 주의하세요.
◎ for문 사용 예시
public class forExample {
public static void main(String[] args) {
for(int i=1; i <= 10; i++) {
System.out.print(i + " ");
}
System.out.println();
System.out.println("프로그램 종료");
}
}
▷ float를 이용해 for문을 실행하면 제대로된 결과 값이 나타나지 않습니다.(아래의 코드 참고)
public class FloatCounterExample {
public static void main(String[] args) {
for(float x=0.1f; x <= 1.0f; x += 0.1f) {
System.out.println(x);
}
}
}
// 출력 :
// 0.1
// 0.2
// 0.3
// 0.4
// 0.5
// 0.6
// 0.70000005
// 0.8000001
// 0.9000001
◎ 구구단 출력 예시
public class MultiplicationTableExample {
public static void main(String[] args) {
// 총 실행 횟수 8 * 9 = 72번 실행
for(int m=2; m<=9; m++) { // 2 3 4 5 6 7 8 9 : 8번
System.out.println("*** " + m + "단 ***");
for(int n=1; n<=9; n++) { // 1 ~ 9 : 9번
System.out.println(m + " x " + n + " = " + (m*n));
}
System.out.println();
}
}
}
5. while문
▷ 조건식이 true일 경우에 계속해서 반복하고, false가 되면 반복을 멈추고 while문을 종료합니다.
▷ while문이 처음 실행될 때 조건식을 평가, 평가 결과가 true이면 실행문을 실행합니다.
▷ 실행문이 모두 실행되면 조건식으로 되돌아가서 조건식을 다시 평가합니다.
▷ 다시 조건식이 true라면 실행문을 반복하고 false면 while문을 종료합니다.
▷ 조건식에 true를 사용하면 while(true){...}가 되어서 무한 반복합니다. 이 경우 while문을 빠져나가기 위한 코드 필요합니다.
◎ while문 예제
public class WhileExample {
public static void main(String[] args) {
int i = 1;
while ( i <= 10 ) {
System.out.print(i + " ");
i++;
}
}
}
while문 코드를 잘 못 이용하면 시스템이 망가질 수 있습니다. 따라서 탈출 조건을 주어야합니다.
public class WhileExample2 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("1~" + (i-1) + " 합: " + sum);
}
}
◎ while문 추가 예제(속도 증감)
public class KeyControlExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean run = true;
int speed = 0;
while(run) {
System.out.println("---------------------");
System.out.println("1. 증속 | 2. 감속 | 3. 중지");
System.out.println("---------------------");
System.out.print("선택 : ");
String strNum = sc.nextLine();
if(strNum.equals("1")) {
speed++;
System.out.println("현재 속도 = " + speed);
} else if(strNum.equals("2")) {
speed--;
System.out.println("현재 속도 = " + speed);
} else if(strNum.equals("3")) {
run = false;
}
}
}
}
// 출력 :
// ---------------------
// 1. 증속 | 2. 감속 | 3. 중지
// ---------------------
// 선택 : 1
// 현재 속도 = 1
// ---------------------
// 1. 증속 | 2. 감속 | 3. 중지
// ---------------------
// 선택 : 2
// 현재 속도 = 0
// ---------------------
// 1. 증속 | 2. 감속 | 3. 중지
// ---------------------
// 선택 : 3
6. 실행 결과에 따라 실행문을 반복하는 do-while문
▷ 블록 내부를 먼저 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정
▷ 작성시 while() 뒤에 반드시 세미콜론(;)을 붙여야 하는데 주의
▷ do-while문이 처음 실행될 때 실행문을 우선 실행한다. 실행문이 모두 실행되면 조건식을 평가합니다.
▷ 평가 결과가 true이면 실행문과 조건문을 다시 검토하고 조건식의 결과가 false이면 do-while문을 종료합니다.
public class DoWhileExample {
public static void main(String[] args) {
System.out.println("메시지를 입력하세요");
System.out.println("프로그램을 종료하려면 q를 입력하세요.");
Scanner sc = new Scanner(System.in);
String inputString;
do {
System.out.print(">");
inputString = sc.nextLine();
System.out.println(inputString);
} while( !inputString.equals("q"));
System.out.println();
System.out.println("프로그램 종료");
}
}