[Java] 조건문

artp·2025년 1월 15일
0

java

목록 보기
6/32
post-thumbnail

4. 조건에 따라 흐름 바꾸기: 조건문

자바 프로그램은 보통 명령을 순차적으로 실행합니다. 하지만 특정 조건에 따라 명령을 실행하거나 실행하지 않도록 해야 할 때가 있습니다. 이런 경우 조건문을 사용합니다. 조건문은 프로그램의 흐름을 유연하게 제어할 수 있도록 도와줍니다.

자바에서 조건에 들어갈 수 있는 건 boolean 타입으로 평가되는 값입니다.

  • true 또는 false
if (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 + "은(는) 짝수입니다.");
        }
    }
}

4.1 조건이 하나일 때: if-else

if-else문은 가장 기본적인 조건문입니다. 주어진 조건을 평가하여 조건이 참(true)이면 특정 명령을 실행하고, 거짓(false)이면 다른 명령을 실행할 수 있습니다.
기본 형식은 다음과 같습니다.

if (조건) {
	실행문; // 조건을 만족할 때 실행할 명령문
} else {
	실행문; // 조건을 만족하지 않을 때 실행할 명령문
}
  • else 블록은 선택 사항입니다. 조건을 만족하지 않을 때 실행할 명령문이 없으면 else 블록은 생략해도 됩니다.

4.1.1 조건을 만족할 때

if 블록은 조건이 참일 때만 실행됩니다. 조건이 거짓이면 해당 블록은 건너뜁니다.

public class Main {
	public static void main(String[] args) {
    	int score = 90;
        
        if (score >= 90) {
        	System.out.println("합격입니다."); // score가 90 이상일 때 실행
        }
    }
}

4.1.2 조건을 만족하지 않을 때

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 미만일 때 실행
        }
    }
}

4.1.3 비교 연산자

조건문에서 자주 사용되는 비교 연산자는 다음과 같습니다.

  • ==: 두 값이 같으면 참
  • !=: 두 값이 다르면 참
  • <: 왼쪽 값이 오른쪽 값보다 작으면 참
  • >: 왼쪽 값이 오른쪽 값보다 크면 참
  • <=: 왼쪽 값이 오른쪽 값보다 작거나 같으면 참
  • >=: 왼쪽 값이 오른쪽 값보다 크거나 같으면 참

4.2 조건이 여러 개일 때: else if

조건이 하나 이상인 경우에는 else if를 사용합니다.
else if는 여러 조건을 순차적으로 검사하며, 첫 번째로 참인 조건의 블록만 실행됩니다.

if (조건1) {
	실행문; // 조건 1을 만족할 때 실행
} else if (조건2) {
	실행문; // 조건 2를 만족할 때 실행
} else if (조건3) {
	실행문; // 조건 3을 만족할 때 실행
} else {
	실행문; // 위 조건들을 모두 만족하지 않을 때 실행
}

4.2.1 논리 연산자

논리 연산자 (&&, ||, !)

  • &&: 왼쪽과 오른쪽 모두 참이면 참
  • ||: 왼쪽과 오른쪽 중 하나라도 참이면 참
  • !: 조건을 만족하면 거짓, 조건을 만족하지 않으면 참
int age = 25;
if (age > 18 && age < 39) {
	System.out.println("청년입니다.");
}

4.3 조건문 안에 조건문이 있을 때: 중첩 조건문

조건문 내부에 또 다른 조건문을 작성할 수도 있습니다. 이를 중첩 조건문이라고 합니다.
중첩 조건문은 여러 조건문을 조합하여 더 복잡한 논리를 표현할 수 있습니다.

중첩이 반복되면 코드가 복잡해지므로 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 학점 이하");
        }
    }
}

4.4 조건과 일치하는 값 찾기: switch

조건문에는 if-else 문 외에도 switch 문이 있습니다. switch 문도 if-else 문처럼 조건에 따라 실행할 명령이 달라집니다.

switch 문은 특정 값에 따라 명령이 달라지는 경우에 사용합니다. 여러 if-else 문을 간단하게 표현할 수 있습니다.

switch (변수) {
	case1:
    	실행문;
    	break;
    case2:
    	실행문;
        break;
    case3:
    	실행문;
        break;
    default: // default는 생략 가능
    	실행문; // 어떤 값과도 일치하지 않을 때 실행
    
}

4.5 삼항 연산자

삼항 연산자는 간단한 조건문을 짧게 표현할 수 있는 연산자입니다.
삼항 연산자를 사용하면 조건을 한 줄로 작성할 수 있어 조건문의 코드 줄 수를 줄이는 역할을 합니다.

변수 = (조건) ?1 :2;
  • 조건: true 또는 false 값을 반환하는 조건이 들어갑니다.
  • 값1: 조건의 결과가 true일 때 선택합니다(변수에 대입됩니다).
  • 값2: 조건의 결과가 false일 때 선택합니다(변수에 대입됩니다).
public clss Main {
	public static void main(String[] args) {
    	int score = 85;
        String result = (score >= 80) ? "합격" : "불합격";
        
        System.out.println("결과: " + result);
    }
}
profile
donggyun_ee

0개의 댓글