조건문

윤주영·2024년 10월 17일

if문

if1

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문에서 참이 된다.

if(age >= 18) 분석

if (age >= 18) {"성인입니다"}
if (20 >= 18) {"성인입니다"} //age의 값은 20이다.
if (true) {"성인입니다"} //조건이 참으로 판명된다.
{"성인입니다"} //if문에 있는 코드 블록이 실행된다.

조건이 참이므로 " 성인입니다." 가 화면에 출력된다.

if (age < 18) 분석

if (age < 18) {"미성년자입니다"}
if (20 < 18) {"미성년자입니다"} //age의 값은 20이다.
if (false) {"미성년자입니다"} //조건이 거짓으로 판명된다.
//해당 코드 블록은 실행되지 않는다

if-else 코드

if (condition1) {
// 조건1이 참일 때 실행되는 코드
} else if (condition2) {
// 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
} else if (condition3) {
// 조건2이 거짓이고, 조건3이 참일 때 실행되는 코드
} else {
// 모든 조건이 거짓일 때 실행되는 코드
}

전체 if문을 하나로 묶는다고 보면 된다.
특정 조건이 만족하면 해당 코드를 실행하고 if문 전체를 빠져나온다.
특정 조건이 만족하지 않으면 다음 조건을 검사한다.
순서대로 맞는 조건을 찾아보고 맞는 조건이 있으면 딱 1개만 실행된다.
참고로 else는 생략할 수 있다.

else 생략코드

if (condition1) {
// 조건1이 참일 때 실행되는 코드
} else if (condition2) {
// 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
}

switch문

switch (조건식) {
    case value1:
// 조건식의 결과 값이 value1일 때 실행되는 코드
    break;
    case value2:
// 조건식의 결과 값이 value2일 때 실행되는 코드
    break;
default:
// 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드
}

  • 조건식의 결과 값이 어떤 case 의 값과 일치하면 해당 case 의 코드를 실행한다.
  • break 문은 현재 실행 중인 코드를 끝내고 switch 문을 빠져나가게 하는 역할을 한다.
  • 만약 break 문이 없으면, 일치하는 case 이후의 모든 case 코드들이 순서대로 실행된다.
  • default 는 조건식의 결과값이 모든 case 의 값과 일치하지 않을 때 실행된다.
  • if 문의 else 와 같다.
  • default 구문은 선택이다.
  • if , else-if , else 구조와 동일하다.

Switch1

package cond;
public class Switch2 {
  public static void main(String[] args) {
    //grade 1:1000, 2:2000, 3:3000, 나머지: 500
     int grade = 2;
     int coupon;
      switch (grade) {
       case 1:
                coupon = 1000;
       break;
       case 2:
               coupon = 2000;
       break;
       case 3:
               coupon = 3000;
       break;
         default:
               coupon = 500;
      }
      System.out.println("발급받은 쿠폰 " + coupon);
    }
}

실행결과

발급받은 쿠폰 2000

if문 vs switch문

  • switch 문의 조건식을 넣는 부분을 잘 보면 x > 10과 같은 참 거짓의 결과가 나오는 조건이 아니라, 단순히 값만 넣을 수 있다.
  • switch 문은 조건식이 특정 case 와 같은지만 체크할 수 있다.
  • 쉽게 이야기해서 값이 같은지 확인하는 연산만 가능하다. (문자도 가능)
  • 반면에 if 문은 참 거짓의 결과가 나오는 조건식을 자유롭게 적을 수 있다. 예) x > 10 , x == 10
  • 정리하자면 swtich 문 없이 if 문만 사용해도 된다.
  • 하지만 특정 값에 따라 코드를 실행할 때는 switch 문을 사용하면 if 문 보다 간결한 코드를 작성할 수 있다.

삼항연산자

(조건) ? 참표현식 : 거짓표현식

  • 삼항 연산자는 항이 3개라는 뜻이다.
  • 조건, 참표현식,거짓표현식
  • 자바에서 유일하게 항이 3개인 연산자여서 삼항 연산자라 한다. (조건연산자)
  • 조건에 만족하면 참표현식이 실행되고 조건이 만족하지 않으면 거짓표현식이 실행된다.
  • if,else문과 유사하다.
  • if문 처럼 코드 블럭을 넣을 수 있는 것이 아니라 단순한 표현식만 넣을 수 있다.

package cond;
public class CondOp2 {
  public static void main(String[] args) {
        int age = 18;
       String status = (age >= 18) ? "성인" : "미성년자";
       System.out.println("age = " + age + " status = " + status);
    }
}

실행 결과 분석

String status = (age >= 18) ? "성인" : "미성년자";    //age=18
String status = (true) ? "성인" : "미성년자";       //조건이 참이므로 참 표현식 부분이 선택된다.
String status = "성인";       //결과

profile
반갑습니다.

0개의 댓글