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 (조건식) {
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문
(조건) ? 참표현식 : 거짓표현식
- 삼항 연산자는 항이 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 = "성인"; //결과