참고강의:
김영한의 자바 무료 입문 강의 - 코드로 시작하는 Java 첫걸음 10시간 - YouTube
if문
- 특정 조건이 참인지 확인하고, 그 조건이 참(true)일 경우 특정 코드 블록을 실행한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
}
public class If {
public static void main(String[] args) {
int age = 25; // 사용자 나이
if (age >= 18) {
System.out.println("성인입니다.");
}
if (age < 18) {
System.out.println("미성년자입니다.");
}
}
}
실행결과
성인입니다.
코드분석
// age = 25
if (age >= 18) {"성인입니다"}
if (25 >= 18) {"성인입니다"} //age의 값은 25이다.
if (true) {"성인입니다"} //조건이 참으로 판명된다.
{"성인입니다"} //if문에 있는 코드 블록이 실행된다.
// 이후에 다음 코드가 실행된다.
if (age < 18) 분석
if (age < 18) {"미성년자입니다"}
if (25 < 18) {"미성년자입니다"} //age의 값은 25이다.
if (false) {"미성년자입니다"} //조건이 거짓으로 판명된다.
if문은 {} 중괄호 생략이 가능하다.
다음과 같이 if 문 다음에 실행할 명령이 하나만 있을 경우에는 {} 중괄호를 생략할 수 있다. else if , else 도 마찬가지이다.
if (true)
System.out.println("if문에서 실행됨");
System.out.println("if문에서 실행 안됨");
else문
- if문에서 만족하는 조건이 없을 때 실행하는 코드를 제공한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
} else {
// 만족하는 조건이 없을 때 실행되는 코드
}
앞에서 진행했던 프로그램을 else문을 사용해서 간략하게 바꿔보자.
public class If2 {
public static void main(String[] args) {
int age = 20; // 사용자의 나이
if (age >= 18) {
System.out.println("성인입니다."); //참일 때 실행
} else {
System.out.println("미성년자 입니다."); //만족하는 조건이 없을 때 실행
}
}
}
실행결과
성인입니다.
else if 문
- if문의 조건이 거짓일 때 다음 조건을 검사한다. 만약 앞선 if문이 참이라면 else if 문을 실행하지 않는다.
if (condition1) {
// 조건1이 참일 때 실행되는 코드
} else if (condition2) {
// 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
} else if (condition3) {
// 조건2이 거짓이고, 조건3이 참일 때 실행되는 코드
} else {
// 모든 조건이 거짓일 때 실행되는 코드
}
문제
이 프로그램은 int age 라는 변수를 사용해야 하며, 연령에 따라 다음의 출력을 해야 한다.
- 7세 이하일 경우: "미취학"
- 8세 이상 13세 이하일 경우: "초등학생"
- 14세 이상 16세 이하일 경우: "중학생"
- 17세 이상 19세 이하일 경우: "고등학생"
- 20세 이상일 경우: "성인"
else if 문을 사용해서 코드를 작성해보자.
public class If3 {
public static void main(String[] args) {
int age = 8;
if (age =< 7) {
System.out.println("미취학");
} else if (age <=13) {
System.out.println("초등학생");
} else if (age <= 16) {
System.out.println("중학생");
} else if (age <= 19) {
System.out.println("고등학생");
} else {
System.out.println("성인");
}
}
}
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 구조와 동일하다.
public class Switch {
public static void main(String[] args) {
int grade = 1;
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);
}
}
실행결과
발급받은 쿠폰 1000
if문 vs switch문
- switch 문의 조건식을 넣는 부분을 잘 보면 x > 10 과 같은 참 거짓의 결과가 나오는 조건이 아니라, 단순히 값만 넣
을 수 있다. - switch 문은 조건식이 특정 case 와 같은지만 체크할 수 있다. 쉽게 이야기해서 값이 같은지 확인하는 연산만 가능하
다. (문자도 가능)
반면에 if 문은 참 거짓의 결과가 나오는 조건식을 자유롭게 적을 수 있다. 예) x > 10 , x == 10 - 정리하자면 swtich 문 없이 if 문만 사용해도 된다. 하지만 특정 값에 따라 코드를 실행할 때는 switch 문을 사용하
면 if 문 보다 간결한 코드를 작성할 수 있다.
삼항 연산자
- 단순히 참과 거짓에 따라 특정 값을 구하는 경우 삼항 연산자 또는 조건 연산자 라고 불리는 ? : 연산자를 사용한다.
(조건) ? 참_표현식 : 거짓_표현식
- 삼항 연산자는 항이 3개라는 뜻이다. 조건, 참_표현식, 거짓_표현식 이렇게 항이 3개이다. 자바에서 유일하게 항
이 3개인 연산자여서 삼항 연산자라 한다. 또는 특정 조건에 따라 결과가 나오기 때문에 조건 연산자라고도 한다. - 조건에 만족하면 참_표현식이 실행되고, 조건에 만족하지 않으면 거짓_표현식이 실행된다. 앞의 if , else 문
과 유사하다. - if 문 처럼 코드 블럭을 넣을 수 있는 것이 아니라 단순한 표현식만 넣을 수 있다.
public class 삼항연산자 {
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 = "성인"; //결과
'JAVA' 카테고리의 다른 글
[JAVA] 반복문 (2) | 2024.01.19 |
---|---|
[JAVA] 연산자 (0) | 2024.01.16 |
[JAVA] 변수 (0) | 2024.01.15 |
[JAVA] JAVA란 ? (0) | 2024.01.15 |