int score = 95;
if(score > 90 ) {
if(score >= 95) {
System.out.println("점수가 95이거나 그보다 크다.");
}
}
2) switch문
switch문은 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.(if문과의 차이점)
- 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다. - default : 괄호 안의 값과 동일한 값을 갖는 case가 없을 때, default로 가서 실행문을 시킨다. (default는 생략 가능하다.)
char grade = 'a';
switch (grade) {
case 'A' :
case 'a' :
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
int num = (int)(Math.random() * 6) + 1 ;
System.out.printf("random: %f, num: %d\n", Math.random(), num);
switch(num) {
case 1 :
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
}
3. 반복문
1) for문
for문은 정해진 횟수만큼 반복해야할 때 사용한다.
for문 구조
- 초기화식에서 선언된 변수는 for문 블록 내에서 사용되는 로컬 변수이다. 즉, for문 밖에서는 사용할 수 없다.
- 조건식이 참(true)이면 실행문을 실행시키고, false면 for문 블록을 실행시키지 않고 끝난다.
- 만약 초기화식이 필요없는 경우 생략할 수 있다. (ex. for(i < 100; i++))
int sum = 0;
int i;
for(i = 1; i <= 100; i++) {
sum += i; // 누적 시키는 변수는 반드시 0으로 초기화를 시켜줘야 함
System.out.printf("1 ~ " + (i-1) + " 합: %d\n", sum);
}
Scanner sc = new Scanner(System.in);
System.out.println("출력할 단을 입력하세요.");
int mul = sc.nextInt();
System.out.println("[" + mul + "단" + "]");
for(int n = 1; n <= 9; n++) {
System.out.println(mul + "*" + n + "= " + (mul * n));
}
2) while문
for문이 정해진 횟수만큼 반복한다면 while문은 조건식이 true인 경우 계속해서 반복한다.
조건식에는 비교 or 논리연산식이 주로 오는데, 조건식이 false가 되면 반복행위를 멈추고 while문을 종료한다.
- 조건식에는 boolean 변수나 true/false 값을 산출하는 연산식이 올 수도 있음
- 만약 조건식에 true가 들어가면 (while (true) {}) 항상 조건식이 true가 되면서 무한루프를 돈다.
- 무한루프는 무한히 반복되기 때문에 while문을 빠져나가기 위한 코드가 필요하다. (ex. break; 를 통해 while문을 빠져나갈 수 있다.)
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.println("선택: ");
int button = sc.nextInt();
sc.nextLine();
switch(button) {
case 1:
speed ++;
System.out.printf("현재 속도 = %d \n\n", speed);
break;
case 2:
speed --;
System.out.printf("현재 속도 = %d \n\n", speed);
break;
case 3:
run = false;
break;
default:
System.out.println("다시 선택하세요.");
}
}
System.out.println("종료");
}
for문과 while문의 차이점❓
for문 - 초기값과 조건식 증감연산으로 이루어져 있으며 동작문을 실행 - 조건식으로 true/false를 판단 - for문은 조건식이 들어가 있으므로 구하고자 하는 값의 조건이 무엇인지 정확할 경우에 사용한다.
whlie문 - 조건식이 false가 될 때까지 무한 실행 - true라면 계속 실행하고 false가 되면 즉시 while문 종료 - 무한루프가 발생할 수 있으므로 종료하는 구문이 필요하다. (변수를 이용하여 false를 지정하거나 break문을 사용하여 무한루프를 벗어날 수 있다.) - 이와 같이 루프를 계속 돌기 때문에 내가 구하고자 하는 값의 조건이 무엇인지 정확히 모를 경우에 사용한다.