▶오늘의 주제 : 조건문: if문, switch문
자바 프로그램은 main()메소드의 시작 중괄호까지 위에서부터 아래로 실행하는 흐름을 가지고 있습니다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 흐름 제어문 혹은 제어문이라고 합니다.
▶if문
: if문은 조건식의 결과에 따라 블록 실행 여부가 결정됩니다. 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 타입 변수가 올 수 있습니다.
public class Practice {
public static void main(String[] args) {
int score = 93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}
if(score<90)
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다.");
}
}
점수가 90보다 큽니다.
등급은 A입니다.
등급은 B입니다.
: 12라인의 if문에는 중괄호 블록이 없어 13라인까지만 영향을 미치며, 14라인은 들여쓰기만 되었을 뿐 if문과는 아무런 관련이 없기 때문입니다.
▶if-else문
: if 문의 조건식의 true이면 if문의 블록이 실행되고 조건식이 false이면 else 블록이 실행됩니다.
public class Practice {
public static void main(String[] args) {
int score = 85;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A등급 입니다. ");
} else {
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다.");
}
}
}
점수가 90보다 작습니다.
등급은 B입니다.
▶ if-else if-else문
: if문의 조건식이 true이면 if문의 블록이 실행되고, 조건식이 false이면 else블록이 실행됩니다.
public class Practice {
public static void main(String[] args) {
int score = 75;
if(score>=90) {
System.out.println("점수가 100~90입니다.");
System.out.println("등급은 A입니다.");
} else if(score>=80) {
System.out.println("점수가 80~90입니다.");
System.out.println("등급은 B입니다.");
} else if(score>=70) {
System.out.println("점수가 70~79입니다.");
System.out.println("등급은 C입니다.");
}else {
System.out.println("점수가 70 미만입니다.");
System.out.println("등급은 D입니다.");
}
}
}
점수가 70~79입니다.
등급은 C입니다.
: score 이 70보다 크므로 3번째에서 true 입니다.
▶switch문
: switch문은 if문과 마찬가지로 조건 제어문입니다. 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됩니다.
변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능이 if문보다 코드가 간결합니다.
▶Math.random() 메소드
: 임의의 정수를 뽑는 방법
public class Practice {
public static void main(String[] args) {
int num = (int) (Math.random() * 6) + 1;
switch(num){
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
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번이 나왔습니다.");
break;
}
}
}
3번이 나왔습니다.
▶ break 문이 없는 switch문
public class Practice {
public static void main(String[] args) {
int time = (int) (Math.random() * 4) + 8;
System.out.println("[현재 시각: " + time + " 시]");
switch(time) {
case 8:
System.out.println("출근합니다.");
case 9:
System.out.println("회의를 합니다.");
case 10:
System.out.println("업무를 봅니다.");
default:
System.out.println("외근을 나갑니다.");
}
}
}
[현재 시각: 8 시]
출근합니다.
회의를 합니다.
업무를 봅니다.
외근을 나갑니다.
▶char 타입의 switch문
: 알파벳 대소문자에 관계없이 동일하게 처리하도록 만든 switch문입니다.
public class Practice {
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("손님입니다.");
}
}
}
일반 회원입니다.
▶String 타입의 switch문
public class Practice {
public static void main(String[] args) {
String position = "과장";
switch(position) {
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("500만원");
break;
default:
System.out.println("300만원");
}
}
}
500만원
▶마무리
1. if문 : if(조건식) {...} 을 말하며 조건식이 true가 되면 중괄호 내부를 실행합니다.
2. if-else문 : if(조건식) {...} else {...}를 말하며 조건식이 true가 되면 if중괄호 내부를 실행하고, false가 되면, else 중괄호 내부를 실행합니다.
3. if-else if-else문 : if(조건식1) {...} else if(조건식2) {...}else {...} 를 말하며 조건식1이 true가 되면 if 중괄호 내부를 실행하고, 조건식 2가 ture가 되면 else if 중괄호 내부를 실행합니다.
4. switch문 : switch(변수) {case 값1: ... case 값2 :.... default:...} 를 말하며 변수의 값이 값1이면 첫 번째 case 코드를 실행하고, 값2이면 두번째 case 코드를 실행합니다. 값1과 값2가 모두 아니면 default 코드를 실행합니다.
'Java' 카테고리의 다른 글
Java - 참조 타입과 참조 변수 (0) | 2022.11.11 |
---|---|
Java - 반복문: for문, while문, do-while (0) | 2022.11.10 |
Java - 연산자의 종류 (0) | 2022.11.08 |
Java - 연산자와 연산식 (0) | 2022.11.08 |
Java - 타입 변환 (0) | 2022.11.08 |