자바 프로그램은 보통 명령을 순차적으로 실행합니다. 하지만 특정 조건에 따라 명령을 실행하거나 실행하지 않도록 해야 할 때가 있습니다. 이런 경우 조건문을 사용합니다. 조건문은 프로그램의 흐름을 유연하게 제어할 수 있도록 도와줍니다.
자바에서 조건에 들어갈 수 있는 건 boolean 타입으로 평가되는 값입니다.
true 또는 falseif (true) {
System.out.println("항상 실행됩니다.");
}
==, !=, <, >, <=, >=)int a = 10, b = 20;
if (a < b) {
System.out.println("a는 b보다 작습니다.");
}
&&, ||, !)&&: 왼쪽과 오른쪽 모두 참이면 참||: 왼쪽과 오른쪽 중 하나라도 참이면 참!: 조건을 만족하면 거짓, 조건을 만족하지 않으면 참int age = 25;
if (age > 18 && age < 39) {
System.out.println("청년입니다.");
}
boolean을 반환하는 경우)public class Main {
public static boolean isEven(String[] args) {
return number % 2 == 0;
}
public static void main(String[] args) {
int num = 10;
if (isEven(num)) {
System.out.println(num + "은(는) 짝수입니다.");
}
}
}
if-else문은 가장 기본적인 조건문입니다. 주어진 조건을 평가하여 조건이 참(true)이면 특정 명령을 실행하고, 거짓(false)이면 다른 명령을 실행할 수 있습니다.
기본 형식은 다음과 같습니다.
if (조건) {
실행문; // 조건을 만족할 때 실행할 명령문
} else {
실행문; // 조건을 만족하지 않을 때 실행할 명령문
}
if 블록은 조건이 참일 때만 실행됩니다. 조건이 거짓이면 해당 블록은 건너뜁니다.
public class Main {
public static void main(String[] args) {
int score = 90;
if (score >= 90) {
System.out.println("합격입니다."); // score가 90 이상일 때 실행
}
}
}
else 블록은 조건이 거짓일 때 실행됩니다.
public class Main {
public static void main(String[] args) {
int score = 80;
if (score >= 90) {
System.out.println("합격입니다."); // score가 90 이상일 때 실행
} else {
System.out.println("불합격입니다."); // score가 90 미만일 때 실행
}
}
}
조건문에서 자주 사용되는 비교 연산자는 다음과 같습니다.
==: 두 값이 같으면 참!=: 두 값이 다르면 참<: 왼쪽 값이 오른쪽 값보다 작으면 참>: 왼쪽 값이 오른쪽 값보다 크면 참<=: 왼쪽 값이 오른쪽 값보다 작거나 같으면 참>=: 왼쪽 값이 오른쪽 값보다 크거나 같으면 참조건이 하나 이상인 경우에는 else if를 사용합니다.
else if는 여러 조건을 순차적으로 검사하며, 첫 번째로 참인 조건의 블록만 실행됩니다.
if (조건1) {
실행문; // 조건 1을 만족할 때 실행
} else if (조건2) {
실행문; // 조건 2를 만족할 때 실행
} else if (조건3) {
실행문; // 조건 3을 만족할 때 실행
} else {
실행문; // 위 조건들을 모두 만족하지 않을 때 실행
}
논리 연산자 (&&, ||, !)
&&: 왼쪽과 오른쪽 모두 참이면 참||: 왼쪽과 오른쪽 중 하나라도 참이면 참!: 조건을 만족하면 거짓, 조건을 만족하지 않으면 참int age = 25;
if (age > 18 && age < 39) {
System.out.println("청년입니다.");
}
조건문 내부에 또 다른 조건문을 작성할 수도 있습니다. 이를 중첩 조건문이라고 합니다.
중첩 조건문은 여러 조건문을 조합하여 더 복잡한 논리를 표현할 수 있습니다.
중첩이 반복되면 코드가 복잡해지므로 3개 이상은 사용하지 않는 것이 좋습니다.
public class Main {
public static void main(String[] args) {
int score = 85;
if (score >= 80) {
if (score >= 90) {
System.out.println("A 학점");
} else {
System.out.println("B 학점");
}
} else {
System.out.println("C 학점 이하");
}
}
}
조건문에는 if-else 문 외에도 switch 문이 있습니다. switch 문도 if-else 문처럼 조건에 따라 실행할 명령이 달라집니다.
switch 문은 특정 값에 따라 명령이 달라지는 경우에 사용합니다. 여러 if-else 문을 간단하게 표현할 수 있습니다.
switch (변수) {
case 값1:
실행문;
break;
case 값2:
실행문;
break;
case 값3:
실행문;
break;
default: // default는 생략 가능
실행문; // 어떤 값과도 일치하지 않을 때 실행
}
삼항 연산자는 간단한 조건문을 짧게 표현할 수 있는 연산자입니다.
삼항 연산자를 사용하면 조건을 한 줄로 작성할 수 있어 조건문의 코드 줄 수를 줄이는 역할을 합니다.
변수 = (조건) ? 값1 : 값2;
public clss Main {
public static void main(String[] args) {
int score = 85;
String result = (score >= 80) ? "합격" : "불합격";
System.out.println("결과: " + result);
}
}