조건문은 조건식에 따라 다른 실행문을 실행하기 위해 사용이된다. 조건문의 종류는 if문, switch문으로 나뉜다.
if문은 조건식의 결과기 true , false이냐에 따라 , switch문은 변수의 값에 따라 실행문이 결정된다.
if (조건문){
<수행할 문장1>; <수행할 문장2>; ... } else { <수행할 문장A>; <수행할 문장B>; ... }
switch(입력변수) { case 입력값1: ... break; case 입력값2: ... break; ... default: ... break; }
1. if문
조건식의 결과에 따라 블록 실행 여부가 결정이 난다. 조건식에는 true and false값을 산출할수 있는 연산식이나 boolean 타입 변수가 올수 있다. 조건식이 true이면 블록을 실행하고 false이면 블록을 실핼하지 않습니다.
public static void main(String[] args) {
int score =93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다");
System.out.println("등급은 A입니다.");
//값이 true기 때문에 중괄호 생략 가능하다.
if(score<=90)
System.out.println("점수가 90보다 작습니다");
System.out.println("등급은 B입니다.");
}
}
1 - 1. if-else문
if문은 else 블록과 함께 사용되어 조선식의 결과에 따라 실행 블록을 선택한다. if문의 조건식이 true이면 if문이 실행되고
false이면 else 블록이 실행된다.
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입니다");
}
}
1 - 2. if - else if - else
조건문이 여러 개인 if문도 있다. 처음에 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록을 선택할 수 있는데 if 블록의 끝은 else if를 붙이면 된다. else if문의 수는 제한이 없으며, 여러 개의 조건식 줄 ture가 되는 블록만 실행하고 전제 if문을 벗어나게 된다. else if 마지막에는 else 블록을 추가할수 있는데 모든 조건식이 false일 경우 else블록을 실행하고 if문을 벗어나게 된다.
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~89입니다");
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입니다");
}
}
2. switch문
if문과 같은 조건 제어문이다. 그러나 if문처럼 조건식이 true일 경우 블록 내부의 실행문을 실행하는 것이 아니라 , 변수가 어떤 값을 갖느냐에 따라 실행문이 선택이된다. if는 else if가 많아질수록 코드가 복잡해진다. 그러나 swich문은 if문 보다 코드가 간결해진다.
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번이 나왔습니다");
break;
case 3:
System.out.println("3번이 나왔습니다");
break;
case 4:
System.out.println("4번이 나왔습니다");
break;
case 5:
System.out.println("5번이 나왔습니다");
break;
case 6:
System.out.println("6번이 나왔습니다");
break;
}
만약에 case 문에 break 문이 없다면 어떻게 될까 ?!
public static void main(String[] args) {
int num = (int) (Math.random()*6)+1; //랜덤으로 주사위 번호 하나뽑기
switch(num) {
case 1:
System.out.println("1번이 나왔습니다");
case 2:
System.out.println("2번이 나왔습니다");
case 3:
System.out.println("3번이 나왔습니다");
case 4:
System.out.println("4번이 나왔습니다");
case 5:
System.out.println("5번이 나왔습니다");
case 6:
System.out.println("6번이 나왔습니다");
}
주사위 번호가 5번이 나와서 5번과 밑에 있는 6번까지 실행이 됬다.
char 타입의 switch 문
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("손님입니다");
}
}
case문을 2개를 줘서 한 개의 값만 출력 할수 있도록 할 수 있다.
'자바' 카테고리의 다른 글
[java] 참조타입과 참조변수 (0) | 2023.04.04 |
---|---|
[java] 반복문 - for문, while문, do-while문 (0) | 2023.03.30 |
[java] 연산자의 종류 (0) | 2023.03.30 |
[java] 연산자와 연산식 (0) | 2023.03.30 |
[java] 변수와 시스템 입출력 (0) | 2023.03.27 |