if문
- if문은 조건식의 결과에 따라 실행 여부가 결정됩니다.
- if문의 구조
if( 조건식 ) {
조건식이 참일 경우 실행할 명령 코드 블럭;
}
- if문 사용 방식
- 조건식에는 참 혹은 거짓을 반환하는 연산식이나 boolean 타입의 변수를 넣을 수 있습니다.
- 조건식이 참일 경우 중괄호({ ... }) 안의 실행문이 실행됩니다.
(중괄호 내의 실행문이 하나만 있을 경우 중괄호를 생략할 수 있음) - 조건식이 거짓일 경우 실행문을 건너뛰고 if문을 빠져나가게 됩니다.
if문의 사용 예시
// score의 값이 91이므로 "A등급 입니다." 출력
public class IfExample {
public static void main(String[] args) {
int score = 91;
if(score >= 90) {
System.out.println("A등급 입니다.");
}
if(score < 90) {
System.out.println("B등급 입니다.");
}
}
}
if-else문
- if-else문은 조건식의 결과가 참이면 if 부분의의 코드블럭을 실행하고 거짓이면 else 부분의 코드블럭을 실행합니다.
- 조건식이 거짓일 때 또 다른 분기를 만들기 위해 else if 를 사용하여 또 다른 분기를 만들 수 있습니다.
(예시 1번) - 뒤에 따라붙은 else if의 수는 제한 없이 계속 붙일 수 있습니다.
(예시 2번) - 또한 if문 안에 또 다른 if문을 만들어 if문 내부에서 분기를 만들 수 있습니다.
(예시 3번)
if-else문 사용 예시1
// score가 79이므로 "B등급 입니다." 출력
public class IfElseExample {
public static void main(String[] args) {
int score = 79;
if(score >= 90) {
System.out.println("A등급 입니다.");
}
else {
System.out.println("B등급 입니다.");
}
}
}
if-else문 사용 예시2
// score가 79이므로 "C등급 입니다." 출력
public class IfElseExample {
public static void main(String[] args) {
int score = 79;
if(score >= 90) {
System.out.println("A등급 입니다.");
}
else if(score >= 80) {
System.out.println("B등급 입니다.");
}
else if(score >= 70) {
System.out.println("C등급 입니다.");
}
else if(score >= 60) {
System.out.println("D등급 입니다.");
}
else {
System.out.println("E등급 입니다.");
}
}
}
if-else문 사용 예시3
// score가 96이므로 "A+등급 입니다." 출력
public class IfElseExample {
public static void main(String[] args) {
int score = 96;
if(score >= 90) {
if(score >= 95) {
System.out.println("A+등급 입니다.");
}
else {
System.out.println("A등급 입니다.");
}
}
else {
if(score >= 85) {
System.out.println("B+등급 입니다.");
}
else {
System.out.println("B등급 입니다.");
}
}
}
}
switch문
- if문은 조건식의 평가를 true, false 두 가지로만 할 수 있기 때문에, 경우의 수가 많은 프로그램을 작성하기 위해서는 코드가 복잡해질 수 밖에 없습니다.
- 반면 switch문은 변수의 출력값에 맞춰 분기를 각각 개별로 만들 수 있기 때문에, if문을 사용하는 것보다 더 간결한 코드를 작성할 수 있습니다.
- switch문의 구조
switch문의 구조
switch( 변수 ) {
case 값1:
변수 값이 1일 경우 실행되는 실행문;
break;
case 값2:
변수 값이 2일 경우 실행되는 실행문;
break;
case 값3:
...
...
// 생략 가능
default:
모든 케이스의 값이 아닐 때 실행되는 실행문;
}
- switch문 사용 방식
- switch문의 괄호( ... )에는 정수 타입(byte, short, int, long), 문자 타입(char), 문자열 타입 변수(String)를 사용할 수 있습니다.
- 각 값에 맞는 case를 실행한 후에는 다음 case를 실행하지 않기 위해 break문을 사용하여 switch문을 빠져나와야 합니다.
- 만약 break문이 없다면 변수 값과 상관없이 다음 case가 연달아서 실행됩니다.
- 자바 12, 13 부터는 switch문에 추가 기능을 사용할 수 있습니다.
switch문 사용 예시
public class SwitchExamlpe {
public static void main(String[] args) {
char grade = 'B';
// grade가 'B'이므로 "우수 회원입니다." 출력
switch(grade) {
case 'A':
System.out.println("특별 회원입니다.");
break;
case 'B':
System.out.println("우수 회원입니다.");
break;
case 'C':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("게스트입니다.");
}
}
}
자바 버전에 따른 switch문 활용
public class SwitchExample {
public static void main(String[] args) {
String grade = "B";
// java11 이전 문법
int score1 = 0;
switch(grade) {
case "A":
score1 = 100;
break;
case "B":
int result = 100 - 20;
score1 = result;
break;
default:
score1 = 60;
}
System.out.println("score1: " + score1);
// java12 이상부터 활용 가능
// 표현식(Expressions)으로 활용 가능
// break문 대신에 -> 기호를 사용하여 가동성 증진
int score2 = switch(grade) {
case "A" -> 100;
case "B" -> {
int result = 100 -20;
// 자바 13부터 활용 가능
// yield 키워드는 해당 스위치 블록의 특정 값을 switch의 결과값으로 반환하는 역할
yield result;
}
default -> 60;
};
System.out.println("score = " + score2);
}
}
'Programing Language > Java' 카테고리의 다른 글
[Java] 자바 개발 환경(Java Development Environment) (0) | 2022.05.16 |
---|---|
[Java] 자바의 반복문(Iterate Statement) (0) | 2022.05.16 |
[Java] 자바의 제어문(Control Statement) (0) | 2022.05.16 |
[Java] 비트 연산자(Bitwise Operators) (0) | 2022.05.13 |
[Java] 산술 연산자(Arithmetic Operators) (0) | 2022.05.13 |