프로그래밍 언어에서는 다양한 제어문을 가지고 있다. 크게본 다면 3가지로 나누어 볼 수 있다.
1.조건문
주어진 조건에 맞추어 원하는 구문을 실행하여 제어 한다는 것으로 대표적으로는
if문
switch case
들이 있다.
2.반복문
주어진 시간 또는 조건을 만족하는 동안 같은 구문을 반복하는 것으로
for
while
들이 있다.
3.분기문
구문이 끝나는 시점 또는 주어진 조건을 만족할때 특정 구문으로 이동 하는 것으로
contunue
break
return
들이 존재 한다.
오늘은 여기서 1번에 해당하는 조건문을 진행 해보고자 한다.
IF문
if문은 다음과 같이 정의하여 사용한다.
조건식이 true값을 가질 때 중괄호({ }) 안의 실행문을 작동시킨다. 반대로 조건식이 false이면 중괄호({ })의 실행문은 동작하지 않고 if문을 빠져나간다. 예제를 통해 확인해 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class App {
public static void main(String[] args) throws Exception {
if(true){
System.out.println("실행 1"); // 실행
}
if(false){ // false
System.out.println("실행 2");
System.out.println("실행 3");
}
if(3!=3) // false
System.out.println("실행 4");
System.out.println("실행 5"); // 실행
}
}
|
cs |
예제에서 보는 것처럼 조건식이 true일 경우 중괄호 안의 내뇽이 실행되고, false일 때는 실행되지 않는다 하지만 3번쨰 if문을 살펴보면 중괄호를 씌워주지 않았을 경우 바로 다음 줄의 실행문만 실행되지 않는다는 것을 확인 할 수 있다.
실행문이 한 개일 경우 중괄호를 생략 할 수 있지만, 코드 가시성이나 컴파일러 오류를 야기 할 수 있기 때문에 크게 추천 하는 방법은 아니다.
또다른 사용법으로 조건문 안에 조건문을 넣는 것으로 다음 예제를 통해서 확인이 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class test {
public static void main(String[] args) {
int a = 6;
if(a%2==0){ // true
System.out.println(a+"는 2의 배수"); // 실행
if(a%3==0){ // true
System.out.println(a+"는 3의 배수"); // 실행
}
if(a%4==0){ // false
System.out.println(a+"는 4의 배수");
}
}
}
}
|
cs |
첫 번째 if문이 true 값을 갖기 때문에 중괄호 안의 실행문들이 동작한다. 이때 if문 내부의 if절의 조건식이 true이면 실행되고 false면 해당 조건문이 실행 되지 않는다.
if-else문
if문 만으로는 복잡하고 다양하고 유기적인 관계도내에서 조건들을 모두 만족하기는 힘들다는 것을 위의 예제들을 통해서 알 수 있다. 이때 if에 만족하지 않는 다른 조건들을 실행하는 방법들로 if-else를 사용한다.
조건식이 true이면 if 절의 실행문을 실행시키고, false면 else절의 실행문이 실행된다. 예제를 통해서 알 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class if_else {
public static void main(String[] args) {
int a = 10, b = 20, c = 9;
int max;
if (a > b && a > c) {
max = a; // 위의 조건식이 true일때 실행
} else { // 위의 조건식이 false일때 실행
if (b > c) {
max = b; // 위의 조건식 true일때 실행
} else {
max = c; // 위의 조건식 false일때 실행
}
}
System.out.println("max = " + max);
}
}
|
cs |
위의 이중 if문 처럼 if-else 문 안에 또 다른 if-else문을 넣어서 사용이 가능하다.
else if문
else if문을 이용하면 2개 이상의 조건식을 두고 흐름을 제어할 때 더 자유롭고 편리하게 코드를 작성할 수 있다.
else if절은 여러 번 정의할 수 있고, else절은 생략이 가능하다. 단, if문이 처음에 나오고 그 다음에 else if문이 제일 마지막에 else문이 나와야 한다. 예제를 통해 확인이 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class elseif {
public static void main(String[] args) {
int a = 25, b = 15, c = 30, d = 20;
int min;
if (a < b && a < c && a < d) { // 조건식 1
min = a; // 조건식 1이 true 면 실행
} else if (b < c && b < d) { // 조건식 2
min = b; // 조건식 1이 false면서 조건식 2가 true면 실행
} else if (c < d) { // 조건식 3
min = c; // 조건식 1, 2가 false면서 조건식 3이 true면 실행
} else {
min = d; // 조건식 1, 2, 3 모두 false일 때 실행
}
System.out.println(min); // 결과 출력
}
}
|
cs |

이처럼 각 조건을 선언해서 다양한 조건에서도 흐름을 제어 할 수 있는 것을 확인 할 수 있다.
switch ~case
switch문은 if문을 대체 할 수 있는 또다른 대표적인 조건문으로 비교하고자 하는 조건이 규칙과 흐름이 있고 방대한 경우 if문보다 비교적 사용하기 편하게 조건들을 선언 할 수 있다는 것이다.
switch문을 작성할 때 case는 여러 개가 나와도 상관 없다. break라는 것은 보조제어문 중 하나이다. 위에 설명한 것 처럼 조건에 해당하는 실행문만 실행시키고 종료시키기 위해서 사용된다.
다음 예제를 통해 쉽게 형태를 파악 할 수 있다.
<코드 삽입_5>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
public class switch_caes {
public static void main(String[] args) {
int score = 85;
switch (score/10) { // 조건=8
case 10:
case 9:
System.out.println("A학점");
break;
case 8: // 값 일치
System.out.println("B학점"); // 실행
break;
case 7:
System.out.println("C학점");
break;
case 6:
System.out.println("D학점");
break;
default:
System.out.println("F학점");
break;
}
}
}
|
cs |
위 예제 처럼 중요하게 볼 부분은 int는 소숫점이 표현이 가능하다는 것이다. 만약 8.5라는 숫자가 발생했을 때 소숫점에 대한 자릿수 버림이 발생하여 case8이 실행된다.
지금 까지 조건문에 대해서 알아보았다. if문을 사용하거나 switch문을 사용하거나 개발자의 자유이나 상황에 따라 취사 선택이 되고 어떤 것이 더 효율적인지 판별이 되는 것이 개발자 아닐까 생각해본다.
'프로그래밍 study > JAVA_101' 카테고리의 다른 글
CH2. java 콘솔 출력 (0) | 2022.03.31 |
---|---|
CH1. 변수 선언 (0) | 2022.03.30 |
CH7. Class(feat. 객체지향 oop) (0) | 2022.03.29 |
CH0. JAVA 설치 및 테스트 (0) | 2022.03.23 |