지금까지 살펴본 프로그램은 단순히 위에서 아래로 순서대로 한 줄씩 실행되었다.
특정 조건에 따라서 다른 코드를 실행하려면 어떻게 해야할까? 예를 들어서 만약 18살 이상이면 “성인입니다”를 출력하고, 만약 18살 미만이라면 “미성년자입니다”를 출력해야 한다.
아마도 다음과 같이 코딩을 해야할 것 같다.
만약 (나이 >= 18)면 “성인입니다”
만약 (나이 < 18)면 “미성년자입니다”
영어로 하면 다음과 같다.
if (age >= 18) “성인입니다”
if (age < 18) “미성년자입니다”
이렇게 특정 조건에 따라서 다른 코드를 실행하는 것을 조건문이라 한다.
조건문에는 if
문, switch
문이 있다. 둘 다 특정 조건에 따라서 다른 코드를 실행하는 것이라 생각하면 된다.
if
문은 특정 조건이 참인지 확인하고, 그 조건이 참(true
)일 경우 특정 코드 블록을 실행한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
}
코드 블록 :
{}
(중괄호) 사이에 있는 코드
package cond;
public class If1 {
public static void main(String[] args) {
int age = 20; // 사용자 나이
if (age >= 18) {
System.out.println("성인입니다");
}
if (age < 18) {
System.out.println("미성년자입니다");
}
}
}
age = 20
값을 주면 처음 if
문에서 참이 된다.
// age = 20
if (age >= 18) {"성인입니다"}
if (20 >= 18) {"성인입니다"} // age의 값은 20이다.
if (true) {"성인입니다"} // 조건이 참으로 판명된다.
{"성인입니다"} // if문에 있는 코드 블록이 실행된다.
조건이 참이므로 “성인입니다”
가 화면에 출력된다.
이후에 다음 코드가 실행된다.
if (age < 18) {"미성년자입니다"}
if (20 < 18) {"미성년자입니다"} // age의 값은 20이다.
if (false) {"미성년자입니다"} // 조건이 거짓으로 판명된다.
// 해당 코드 블록은 실행되지 않는다.
조건이 거짓이므로 if
문 블록을 실행하지 않고 빠져나온다. 따라서 “미성년자입니다”
는 화면에 출력되지 않는다.
int age = 20
의 값을 15
로 변경하면 미성년자입니다
가 출력되는 것을 확인할 수 있다.
else문은 if문에서 만족하는 조건이 없을 때 실행하는 코드를 제공한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
} else {
// 만족하는 조건이 없을 때 실행되는 코드
}
else
문을 사용하면 앞서 진행했던 프로그램을 다음과 같이 더 간략하게 바꿀 수도 있다.
쉽게 이야기해서 18살이 넘으면 성인이고, 그렇지 않으면 모두 미성년자이다.
아마도 다음과 같이 코딩을 해야할 것 같다.
만약 (나이 >= 18)이면 “성인입니다”
그렇지 않으면 “미성년자입니다”
영어로 하면 다음과 같다.
if (age >= 18) “성인입니다”
else “미성년자입니다”
package cond;
public class If2 {
public static void main(String[] args) {
int age = 20; // 사용자의 나이
if (age >= 18) {
System.out.println("성인입니다"); // 참 일때 실행
} else {
System.out.println("미성년자입니다"); // 만족하는 조건이 없을 때 실행
}
}
}
int age = 20
의 값을 15
로 변경하면 미성년자입니다
가 출력되는 것을 확인할 수 있다.