조건문
- 특정 조건에 따라 문장의 실행 여부를 결정하는 문
단일 if문
- 조건식에 따라 특정 문장 실행 여부를 결정하는 기본적인 조건문
- 조건식 판별 결과가 true 이면 블록( { } ) 문 내의 문장들을 실행하고 조건식 판별 결과가 false 이면 블록 문을 생략함
기본 문법
문장1;
if(조건식) {
문장2; // 조건식 판별 결과가 true 일 때 실행할 문장들...
}
문장3;
조건식 판별 결과가 true 일 때 : 문장1 -> 문장2 -> 문장3
조건식 판별 결과가 false 일 때 : 문장1 -> 문장3
if ~ else 문
-
조건식 판별 결과에 따라 서로 다른 문장을 실행하는 if문
조건식 판별 결과가 true 이면 if 문의 중괄호 블록문{} 을 실행하고 false 이면 else 문의 블록문{} 을 실행
-
삼항 연산자(조건 연산자)와 동일한 형태의 조건문
if ~ else 문이 더 상위 조건문
기본 문법
문장1;
if(조건식) {
문장2; // 조건식 판별 결과가 true 일 때 실행할 문장들...
} else {
문장3; // 조건식 판별 결과가 false 일 때 실행할 문장들...
}
문장4;
조건식 판별 결과가 true 일 때 : 문장1 -> 문장2 -> 문장4
조건식 판별 결과가 false 일 때 : 문장1 -> 문장3 -> 문장4
(문장2 와 문장3 은 동시에 실행될 수 없다!)
System.out.println("프로그램 시작!");
int num = 3;
if(num > 5) { // num 이 5보다 클 경우
System.out.println("num 이 5보다 크다!");
} else { // num 이 5보다 크지 않을 경우(같거나 작을 경우)
System.out.println("num 이 5보다 크지 않다!");
}
System.out.println("프로그램 종료!");
if ~ else if ~ else 문(다중 if ~ else 문 또는 if ~ else if 문)
- 두 가지 이상의 조건식을 차례대로 판별하면서 세 가지 이상의 경우를 판별하는 조건문
기본 문법
if(조건식1) {
// 조건식1 의 결과가 true 일 때 실행할 문장들...
문장1;
} else if(조건식2) {
// 조건식1 의 결과가 false 이고, 조건식2 의 결과가 true 일 때 실행할 문장들...
문장2;
} else if(조건식n) {
// 조건식 1, 2 의 결과가 false 이고, 조건식n 의 결과가 true 일 때 실행할 문장들...
문장n;
} else {
// 모든 조건식의 결과가 false 일 때 실행할 문장들...
// (생략 가능)
문장x;
}
// 정수 num 이 5보다 크면 "num 이 5보다 크다" 출력하고,
// 정수 num 이 5보다 작으면 "num 이 5보다 작다" 출력
// 만약, 둘 다 아닐 경우 "num 이 5와 같다" 출력
int num = 5;
if(num > 5) {
System.out.println("num 이 5보다 크다!");
} else if(num < 5) {
System.out.println("num 이 5보다 작다!");
}
// => 만약, num 이 5일 경우 if 문과 else if 문 모두 실행되지 않음
// num 이 5일 때, if문과 else if문 모두 해당되지 않으면
// 실행할 문장을 else 문 블록에 기술해야한다!
if(num > 5) {
System.out.println("num 이 5보다 크다!");
} else if(num < 5) {
System.out.println("num 이 5보다 작다!");
} else {
System.out.println("num 은 5이다!");
}
System.out.println("===========================");
// 중첩 if문
// - if문 안에 또 다른 if문이 중첩되는 형태
// => 특정 조건을 만족할 때 새로운 if문이 다시 수행되는 문장
int score = 48;
String grade = "";
// 점수(score)가 정상범위(0 ~ 100 사이)인지 판별
if(score >= 0 && score <= 100) {
// 점수가 정상 범위일때만 학점 계산
if(score >= 90) {
grade = "A";
} else if(score >= 80) {
grade = "B";
} else if(score >= 70) {
grade = "C";
} else if(score >= 60) {
grade = "D";
} else { // 0 ~ 59 포함됨
grade = "F";
}
System.out.println(score + "점의 학점 : " + grade);
} else {
// 0 ~ 100 사이의 점수가 아니면 학점 계산 실행되지 않음
System.out.println(score + " : 점수 입력 오류!");
}
switch ~ case 문
-
if문과 달리 조건식이 정수 값, 문자열, Enum 상수 중 하나의 결과가 와야 한다.
-
case 문에는 조건식 판별 결과와 비교할 값을 사용하며 범위 지정이 불가능하고, 값만 사용 가능
조건식 결과와 일치하는 case 문의 : 뒤에 있는 문장들을 차례대로 실행
-
case 문의 값은 중복될 수 없으며, 순서는 상관없다
-
case 문 실행 후 break 문을 사용하여 switch ~ case 문을 빠져나갈 수 있으며, break 문이 없을 경우에는 조건과 상관없이 다음 case 문 또는 default 문을 모두 실행함(break 문을 만나거나 switch ~ case 문이 끝날 때까지 실행)
-
default 문은 if 문의 else 문과 동일한 역할을 수행하며 일치하는 case 문이 없을 경우 default 문을 실행(default 문은 생략 가능)
-
if문은 실행 시점에서 조건을 판별하여 실행할 문장이 결정되지만, switch ~ case 문은 번역 시점에 실행할 문장이 결정되므로 실행 속도가 if문보다 빠름
-
if문과 유사하게 조건에 따른 실행 문장을 달리하는 조건문
-
if문이 switch ~ case 문보다 유연하므로 switch ~ case 문은 if문으로 100% 전환이 가능하지만 if문은 switch ~ case 문으로 전환이 불가능할 수 있다.
기본 문법
switch(조건식) {
case 값1 :
// 조건식 결과가 값1 과 일치할 경우 실행할 문장들...
[break;]
case 값n :
// 조건식 결과가 값n 과 일치할 경우 실행할 문장들...
[break;]
[default : // 일치하는 case 문이 없을 경우 실행할 문장들... ]
}
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 자바의 배열 Array (0) | 2021.01.18 |
---|---|
[JAVA] 자바의 반복문 for & while (0) | 2021.01.18 |
[JAVA] 자바의 비교&논리 연산자 (0) | 2021.01.18 |
[JAVA] 자바의 연산자 (0) | 2021.01.18 |
[JAVA] 자바의 형변환 Type Casting (0) | 2021.01.18 |