조건문은 조건식에 따라 다른 실행문을 실행하기 위해 사용합니다.
종류로는 if문 세 가지와 switch문이 있습니다.
1. 단순 if문
2. if-else문
3. if-else if-else문
4. switch-case문
if문은 boolean값, switch문은 변수의 값에 따라 결정됩니다.
1. 단순 if문
if의 조건식에는 boolean 타입 변수로,
true 또는 false 값을 산출할 수 있는 연산식이 올 수 있습니다.
조건식이 true이면 블록을 실행하고,
조건식이 false이면 블록을 실행하지 않습니다.
조건식이 true일 때 실행문이 1개라면 중괄호{ }를 생략할 수 있지만
추천하지는 않습니다.
2. if-else문
기본적인 사용 방법은 if문과 동일합니다.
if문과 else 블록을 함께 사용하면 조건식의 결과에 따라
실행 블록을 선택할 수 있습니다.
실행 흐름
조건식이 true이면 실행문 A -> 실행문 C 순으로 실행합니다.
조건식이 false이면 실행문 B -> 실행문 C 순으로 실행합니다.
3. if-else else-if문
else if문을 사용하면 하나의 조건을 만족하면
다른 조건은 더 이상 비교하지 않습니다.
하지만 if문을 여러 번 작성하면
조건과 실행문이 서로 독립적이라서 원하는 값을 없습니다.
실행 흐름
조건식 1이 true이면 실행문 A -> 실행문 D 순으로 실행합니다.
조건식 1이 false이면 조건식 2로 이동합니다.
조건식 2가 true이면 실행문 B -> 실행문 D 순으로 실행합니다.
조건식 2가 false이면 실행문 C -> 실행문 D 순으로 실행합니다.
아래는 기본적인 예시입니다.
public class IfTest {
public static void main(String[] args) {
int a = 10;
int b = 0;
int c = 0;
int d = 0;
// if-else문
System.out.println("if-else문 출력");
if(a > 3) { // true
b = 2;
System.out.println(b); // 2 출력
} else {
b = 1;
System.out.println(b); // 출력 X
}
// 2 출력
// if- if문
System.out.println("if문 + if-else문 출력");
if(a > 3) {
c = 2;
System.out.println(c); // 2 출력
}
if(a > 6) {
c = 1;
System.out.println(c); // 1 출력
} else {
c = 3;
System.out.println(c); // 출력 X
}
// 2, 1 출력
// else if문을 사용하지 않고
// if문만 반복적으로 사용하는 건 if문을 여러 개 작성하는 것과 똑같습니다.
// if-else else-if문
System.out.println("if-else else-if문 출력");
if(a > 3) {
d = 2;
System.out.println(d); // 2 출력
}
else if(a > 6) {
d = 1;
System.out.println(d); // 출력 X
} else {
d = 3;
System.out.println(d); // 출력 X
}
// 2 출력
}
}
4. switch-case문
if문과 다르게 변수의 값에 따라 실행문이 다르게 실행됩니다.
if문은 boolean 값만 사용할 수 있기 때문에 경우의 수가 많을 경우 else if문을 대량으로 추가해야 합니다.
하지만 switch문은 변수의 값에 따라 실행문이 결정되기 때문에 더 간결합니다.
if문과 다르게 break문을 반드시 작성해야 합니다.
break문을 작성을 안 하면 모든 실행문이 실행됩니다.
각 조건을 case로 표시하고 마지막은 default로 작성합니다.
switch-case문의 예시입니다.
public class SwitchCaseTest {
public static void main(String[] args) {
int a = 1;
int b = 3;
int age = 0;
String name = "홍길동";
// switch-case문
switch(a) { // a = 1
case 1 :
age = 1;
System.out.println(age);
// break;
case 2 :
age = 2;
System.out.println(age);
// break;
case 3 :
age = 3;
System.out.println(age);
// break;
default :
age = 5;
System.out.println(age);
// break;
}
// 1, 2, 3, 5 모두 출력(break문이 없어서 case 1: 부터 모두 출력됩니다.)
// switch-case문
switch(b) { // b = 3
case 1 :
age = 1;
System.out.println(age);
break;
case 2 :
age = 2;
System.out.println(age);
break;
case 3 :
age = 3;
System.out.println(age);
break;
default :
age = 5;
System.out.println(age);
break;
}
// 3 출력(break문이 있어서 case 3: 에서 출력하고 멈춥니다.)
}
// switch-case문(문자열)
switch(name) { // name = 홍길동
case "홍길동2" :
System.out.println("나는 홍길동2다.");
break;
case "홍길동3" :
System.out.println("나는 홍길동3다.");
break;
case "홍길동4" :
System.out.println("나는 홍길동4다.");
break;
default :
System.out.println("나는 홍길동이다.");
break;
}
// 나는 홍길동이다. 출력(해당되는 case가 없어서 default: 에서 출력됩니다.)
}
}
++
추가적으로 if문, switch문과 조건 연산자는 서로 교환이 가능합니다.
public class ConditionalTest {
public static void main(String[] args) {
int a = 5;
int b = 3;
int c = 0;
int d = 0;
int age = 0;
// if - 조건 연산자
// if문
if(a > b) {
c = 2;
} else {
c = 1;
}
System.out.println(c); // 2
// 조건 연산자
d = (a > b) ? 2 : 1;
System.out.println(d); // 2
// if - switch
// if문
if(a == 1) {
age = 1;
} else if(a == 2) {
age = 2;
} else if(a == 3) {
age = 3;
} else {
age = 5;
}
System.out.println(age); // 5
// switch-case문
switch(b) {
case 1 :
age = 1;
break;
case 2 :
age = 2;
break;
case 3 :
age = 3;
break;
default :
age = 5;
break;
}
System.out.println(age); // 3
}
}
마지막 정리
1. 조건 연산자는 조건식의 결과가 2개 중 하나이고, 한 줄에 코드를 짤 때 사용하는 것이 좋습니다.
2. if문은 조건식의 결과가 boolean값인 경우에 사용하는 것이 좋습니다.
3. switch-case문은 조건식의 결과가 정수 또는 문자열 값인 경우에 사용하는 것이 좋습니다.
'백엔드 > JAVA' 카테고리의 다른 글
배열 (0) | 2021.08.21 |
---|---|
반복문(while문, for문) (0) | 2021.08.21 |
[JAVA] 연산자 (0) | 2021.03.07 |
[JAVA] 자료형, 데이터 타입 (0) | 2021.03.07 |
[JAVA] 변수의 종류와 사용법 (0) | 2021.03.07 |
최근댓글