반응형
개요
자바에서 사용하는 조건문 if, switch에 대해서 알아보자
if문
if문의 작성법은 C/C++/C#/JS 등과 동일하다.
public class Main {
public static void main(String[] args) {
int a = 1;
if (a % 2 == 0) System.out.println("even");
else System.out.println("odd");
}
}
switch문
여러가지 값 비교시 사용된다. 이 역시 타 언어와 동일하다.
case를 따지기 위한 값은 반드시 정수형이거나 String 형태여야 한다.
* String타입의 케이스 체크는 jdk 7이상 버전부터 가능하다.
* 정수형 중 long타입은 switch문에서 조건을 판별할 수 없다.
또한 각 케이스를 체크한 후에는 break처리를 해야 누수가 발생하지 않는다.
public class Main {
public static void main(String[] args) {
int a = 3;
switch (a) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
default:
System.out.println("3");
}
}
}
public class Main {
public static void main(String[] args) {
String a = "Apple";
switch (a) {
case "Ant":
System.out.println("case 1");
break;
case "Apple":
System.out.println("case 2");
break;
default:
System.out.println("default case");
}
}
}
switch문(2)
switch문의 또다른 활용법으로 표현식 자체가 값을 반환할 수 있다, 이는 자동으로 break처리가 된다.
- 실행할 라인이 1줄인 경우 :를 빼고 ->를 이용해 처리할 수 있다.
- 만약 block을 구성해야 하는 경우 yield 키워드를 사용해 준다.(block에서만 사용)
- 동일하게 처리되는 여러 조건을 쉼표로 구분하여 한 라인에서 처리 가능하다.
* 해당 기능은 자바 12이상의 버전에서 사용 가능하다.
1. 간결한 switch 표현식
public class Main {
public static void main(String[] args) {
int day = 3;
String result = switch (day) {
case 1 -> "월요일";
case 2 -> "화요일";
case 3 -> "수요일";
default -> "알 수 없음";
};
System.out.println(result); // "수요일"
}
}
- ->(화살표 연산자) 사용
- switch 문 자체가 값을 반환하여 변수에 직접 대입
- break 문이 필요 없음
2. 여러 값 처리
public class Main {
public static void main(String[] args) {
int score = 85;
String grade = switch (score / 10) {
case 10, 9 -> "A";
case 8 -> "B";
case 7 -> "C";
case 6 -> "D";
default -> "F";
};
System.out.println(grade); // "B"
}
}
3. 블록 사용 (복잡한 로직 포함)
public class Main {
public static void main(String[] args) {
int day = 5;
String result = switch (day) {
case 1, 2, 3 -> "주중";
case 4, 5 -> {
System.out.println("거의 주말입니다.");
yield "주중"; // 값을 반환할 때 yield 사용
}
case 6, 7 -> "주말";
default -> "알 수 없음";
};
System.out.println(result); // "거의 주말입니다." 이후 "주중" 출력
}
}
- yield: 블록에서 값을 반환할 때 사용
- 복잡한 작업이 필요할 경우 블록 {}을 사용할 수 있음
728x90
반응형
'웹(WEB) > 자바(JAVA)' 카테고리의 다른 글
[Java] 자바 변수의 선언 위치에 따른 분류 (0) | 2024.12.28 |
---|---|
[Java] 자바 JVM 메모리 구조 (0) | 2024.12.28 |
[Java] 자바 배열 (0) | 2024.12.27 |
[Java] 자바 반복문 for, while, do while (0) | 2024.12.27 |
[Java] 자바 변수 타입, 타입 변환 (0) | 2024.12.27 |