728x90
반응형
SMALL
제어문(또는 흐름 제어문) : 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것
제어문 종류
- 조건문
- 반복문
이번 시간에는 조건문에 대해 알아보자.
<if문>
- 조건식의 결과에 따라 블록 실행 여부 결정
- 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean타입 변수가 올 수 있음
- 조건식이 true일 때 블록 실행, false이면 블록을 실행하지 않음
- 조건식이 true(①)이면 실행문 A →실행문 B 실행
- 조건식이 false(②)이면 실행문 B 실행
중괄호 { }블록은 여러 개의 실행문을 하나로 묶기 위해 작성되므로 실행문이 하나일 경우에는 쓰지 않아도 된다.
하지만 중괄호 블록이 없으면 코드의 가독성이 좋지 않아 코드 해석이 어려워지고 버그 발생의 원인이 될 수 있기 때문에 생략하지 않고 작성하는 것을 추천한다.
public class IfExample {
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 입니다.");
}
}
결과 :
<if~else 문>
if문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택
- if문의 조건식이 true → if문 블록 실행
- if문의 조건식이 false → else문 블록 실행
따라서 조건식의 결과에 따라 2개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어남.
- 조건식이 true(①)이면 실행문 A →실행문 C 실행
- 조건식이 false(②)이면 실행문 B →실행문 C 실행
public class IfElseExample {
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 입니다.");
}
}
}
결과 :
<if ~ else if ~ else문>
- 조건문이 여러 개인 if문
- else if문의 수는 제한 없음
- 조건식1이 true(①)이면 실행문 A →실행문 D 실행
- 조건식1이 false(②)이면 조건식2로 이동
- 조건식2가 true(③)이면 실행문 B →실행문 D 실행
- 조건식2가 false(④)이면 실행문 C →실행문 D 실행
public class IfElseIfElseExample {
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 입니다.");
}
}
}
결과 :
<switch문>
if문과 마찬가지로 조건 제어문이지만 변수가 어떤 값을 갖느냐에 따라 실행문이 선택되는 것이 다른 점이다.
- 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문 실행
- case 끝에 break가 없으면 다음 case의 변수 값 상관없이 연달아 실행됨.
- default는 생략 가능
* 기본 switch문
public class SwitchExample {
public static void main(String[] args) {
int num = 6;
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번이 나왔습니다.");
break;
}
}
}
결과 :
*break문이 없을 때
public class SwitchNoBreakCaseExample {
public static void main(String[] args) {
int time = 9;
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("외근을 나갑니다.");
}
}
}
결과 :
728x90
반응형
LIST
'프로그래밍언어 > Java' 카테고리의 다른 글
05-1. 참조 타입과 참조 변수 (0) | 2021.01.18 |
---|---|
04-2. for문, while문, do-while문 (0) | 2021.01.12 |
03-2. 연산자의 종류 (0) | 2021.01.08 |
03-1. 연산자와 연산식 (0) | 2021.01.05 |
02-4. 변수와 시스템 입출력 (0) | 2021.01.04 |