반응형
1. 조건문
IF문
- if문은 특정 조건이 참인지 확인하고, 그 조건이 참(true)일 경우 특정 코드 블록을 실행한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
}
else문
- else문은 if문에서 만족하는 조건이 없을때 실행하는 코드
if (condition) {
// 조건이 참일 때 실행되는 코드
} else {
// 만족하는 조건이 없을 때 실행되는 코드
}
else if문
package cond;
public class If3 {
public static void main(String[] args) {
int age = 14;
if(age <= 7) { //~7: 미취학
System.out.println("미취학");
}
if(age >= 8 && age <= 13) { //8~13: 초등학생
System.out.println("초등학생");
}
if(age >= 14 && age <= 16) { //14~16: 중학생
System.out.println("중학생");
}
if(age >= 17 && age <= 19) { //17~19: 고등학생
System.out.println("고등학생");
}
if(age >= 20) { //20~: 성인
System.out.println("성인");
}
}
}
이 코드에는 두가지 단점이 있다.
1.이미 조건을 만족해도 불필요하게 조건을 검사함
→ 나이가 5살일 경우 첫 if문에서 걸러지는데 뒤에까지 모두 검사해야함
2.코드 효율성
-> 예를들어 나이가 8살인 초등학생이라면 미취학을 체크하는 조건인 age <=7을 통해 나이가 8살이 넘는 다는 사실을 알 수 있다. 조건을 보면 age>=8 이라는 조건은 이미 앞의 age <=7이라는 조건과 관련이 있다. 결과적으로 중복 체크 한 것이다.
if (condition1) {
// 조건1이 참일 때 실행되는 코드
} else if (condition2) {
// 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
} else if (condition3) {
// 조건2이 거짓이고, 조건3이 참일 때 실행되는 코드
} else {
// 모든 조건이 거짓일 때 실행되는 코드
}
- elseif 문은 앞선 if 문의 조건이 거짓일때 다음 조건을 검사한다. → 만약 앞선 if 문이 참이라면 elseif 를 실행하지 않는다.
if문과 else if문
if 문에 else if 를 함께 사용하는 것은 서로 연관된 조건일 때 사용한다. 그런데 서로 관련이 없는 독립 조건이면 else if 를 사용하지 않고 if 문을 각각 따로 사용해야 한다
ex) 아이템 가격이 10000원 이상일 때, 1000원 할인 나이가 10살 이하일 때 1000원 할인
참고 - if문 {} 중괄호 생략
다음과 같이 if 문 다음에 실행할 명령이 하나만 있을 경우에는 {} 중괄호를 생략할 수 있다. else if , else 도 마 찬가지이다.
if (true)
System.out.println("if문에서 실행됨");
System.out.println("if문에서 실행 안됨");
이때 두번째 문장은 if문과 무관하다. 만약 둘다 if문 안에 포함하려면 { } 를 사용해야 한다.
- if문 명령이 한개만 있을 경우에도 다음과 같은 이유로 중괄호를 사용하는 것이 좋다.
- 가독성: 중괄호를 사용하면 조건문의 범위가 명확하게 표시되므로 코드의 흐름을 더 쉽게 이해할 수 있다.
- 유지보수성: 중괄호를 사용하면 나중에 코드를 수정할 때 오류를 덜 발생시킬 수 있다.
switch문
- switch 문은 앞서 배운 if 문을 조금 더 편리하게 사용할 수 있는 기능이다.
- 다만 if 문은 비교 연산자를 사용할 수 있지만, switch 문은 단순히 값이 같은지만 비교할 수 있다.
switch (조건식) {
case value1:
// 조건식의 결과 값이 value1일 때 실행되는 코드
break;
case value2:
// 조건식의 결과 값이 value2일 때 실행되는 코드
break;
default:
// 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드
}
- 조건식의 값이 어떤 case의 값과 일치하면 해당 case의 코드를 실행
- break문은 실행 중인 코드를 끝내고 switch문을 빠져나가게 해주는 역할이다.
- 만약 break문이 없다면 해당 case 밑에 존재하는 모든 코드가 실행된다.
- default문은 조건식의 값이 모든 case와 일치하지 않을 경우 실행된다. if문의 else와 같다.
- default는 선택
자바 14 새로운 switch문
package cond;
public class Switch3 {
public static void main(String[] args) {
//grade 1:1000, 2:2000, 3:3000, 나머지: 500
int grade = 2;
int coupon = switch (grade) {
case 1 -> 1000;
case 2 -> 2000;
case 3 -> 3000;
default -> 500;
};
System.out.println("발급받은 쿠폰 " + coupon);
}
}
- ->을 사용한다.
- case에 따른 데이터를 반환할 수 있다.
if문 vs switch문
if | switch | |
단순한 값 | 가능 | 가능 |
조건식 | 가능 | 불가능 |
간결함 | 상대적으로 복잡 | 상대적으로 간결 |
삼항 연산자
단순히 참과 거짓에 따라서 특정 값을 구하는 경우 삼항 연산자 또는 조건 연산자라고 불리는 ?: 연산자를 사용할 수 있다.
(조건) ? 참_표현식 : 거짓_표현식
- 조건에 만족하면 참_표현식이 실행되고, 조건에 만족하지 않으면 거짓_표현식 실행
- if문처럼 코드 블럭을 넣을 수 있는 것이 아니라 단순한 표현식만 넣을 수 있다.
배운점
자바14 부터 가능한 새로운 switch문에 대해 배우게 되었고 이걸통해 if문을 사용하여 구현할 수 있었던 것보다 훨씬 더 간결하고 가독성 좋은 코드가 나올것 같고, 참과 거짓에 따라 특정값을 구하는 경우는 삼항연산자를 이용하면 된다는걸 배웠다.
반응형
'코딩' 카테고리의 다른 글
[ Java ] 자바-입문 6. 스코프,형변환 (0) | 2024.02.05 |
---|---|
[ Java ] 자바-입문 5. 반복문 (1) | 2024.02.05 |
[ Java ] 자바-입문 3. 연산자 (0) | 2024.02.02 |
[ Java ] 자바-입문 (변수 선언, 초기화, 명명 규칙) (0) | 2024.02.01 |
[ Java ] 자바-입문 초보자를 위한 자바 프로그래밍: 포괄적 가이드 (5) | 2024.01.31 |