[Java]조건문 if 와 switch문 사용하기 및 예제
1. 조건문이란?
프로그래밍을 하다보면 상황에 따라 다른 코드를 수행해야 할 때가 있다.
단순한 예를 들면 사과가 1000원, 바나나가 1500원일 때
유저가 무엇을 요청했는 지에 따라 가격을 다르게 불러야 할 때이다.
조건문에는 크게 if와 switch문 두 종류가 있다.
if는 보통 양자택일의 상황에서 주로 쓰이고
switch문은 다양한 선택지가 있는 경우에 주로 쓰인다.
(물론 꼭 저렇게 해야만 하는 건 아니고 어느 것을 택하든 프로그램은 동작하니 상황에 맞게 편한대로 쓰면 된다)
2. if 문 사용하기
먼저, if문은 다음과 같이 사용한다.
if(조건식1){
조건식 1이 참일 때 수행할 식
}
else if(조건식2){
조건식2가 참일 때 수행할 식
}
else{
조건식 1,2 둘다 참이 아닐 때 수행할 식
}
위에서 보다시피 ()괄호 안에 참거짓을 판별할 조건식을 넣으면 된다.
그리고 else if는 if가 참이 아니였을 때 조건식 2를 따지게 되고
else는 위의 if와 else if들이 모두 참이 아닐 때 수행하게 된다.
참고로 if와 else는 한번만 쓸 수 있지만 else if는 if와 else사이에 여러번 사용할 수 있다.
그리고 내가 처음에 if문을 배웠을 때 헷갈렸던 부분인데
조건문을 수행하다가 참이되어 내부 로직을 수행하게 되면
그 아래 조건문들은 따지지 않고 넘어가게 된다.
무슨 말이냐면, 만약 위의 예시에서 조건식1이 참이 되었을 때,
else if와 else문은 거치지 않고 그냥 넘어가게 된다는 뜻이다.
예제를 실제로 보면 이해가 쉬울 것이다.
if문의 예제코드는 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
if(a<5){
System.out.println("if문 a는 5보다 작음");
}
else if(a>10){
System.out.println("else if문, a는 10보다 큼");
}
else{
System.out.println("else문, a는 5와 10사이");
}
}
}
|
cs |
위의 예시는 유저에게 정수를 하나 받아서 a에 넣어놓은 뒤에
그 값에 따라 콘솔에 문구를 출력하는 예제이다.
a가 5보다 작으면 if,
a가 10보다 크면 else if
a가 5와 10사이의 값이면 else에 걸리도록 해놓았다.
첫번째 출력값 예시이다.
7을 입력시에 5와 10사이이므로 else문이 작동한 것을 볼 수 있다.
두번째 출력값 예시이다.
12를 입력했는데 else if문이 작동한 것을 볼 수 있다.
이 때, else문은 출력하지 않고 그냥 넘어간 것을 알 수 있다.
3. switch 문 사용하기
switch문도 if와 마찬가지로 조건문으로써 기능하지만
주로 선택지가 많을 때 사용한다.
또, 같은 내용의 코드일 때 if 문보다 가독성이 좋다는 장점도 있다.
사용은 다음과 같이 한다.
switch(비교할 값){
case 경우1:
case 경우2:
System.out.println("a");
break;
case 경우3:
System.out.println("b");
break;
case 경우4:
System.out.println("c");
break;
default:
System.out.println("d");
break;
}
위 코드를 말로 풀어보자면
비교할 값이 경우1,2 인 경우에는 a를 출력하고
경우 3일때는 b, 경우 4일때는 c를 출력,
그 외의 경우에는 d를 출력한다는 의미이다.
이 때 수행이 끝나고 break를 안써주게 되면 그 아래에 있는 case들의 로직까지 모두 수행하게 된다.
의도하였다면 괜찮지만 그렇지 않은 경우에는 버그의 원인이 될 수 있으므로 보통 break를 써준다.
아래는 그 예시이다.
사용자에게 입력값을 받아 a에 넣고 a의 값에 따라 출력하는 코드이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
switch(a){
case 1:
System.out.println("1 출력");
case 2:
System.out.println("2 출력");
break;
default:
System.out.print("3 출력");
break;
}
}
|
cs |
위의 예시 코드에서 1을 입력했을 때
아래와 같이 결과가 출력된다.
a값이 1이므로 case 1로 들어가게 되는 데,
이 때 break문이 없으므로 case2까지 수행하고 case2의 break에 걸려 빠져나온 상황이다.
만약 case2에도 break가 없었다면 default까지 수행하고 나왔을 것이다.
참고로 여기까지 보면 알겠지만
switch문에서는 case에서 정확히 어떤 값이 들어올 것이다 라고 명시를 해주어야 하기 때문에
아래의 예시처럼 if문과 달리 범위로 조건을 따질 수 없다.
switch(a){
case a>5: //이런 식의 범위 조건인식은 불가능하다.
break;
}
만약 범위로 조건을 따져야 할 때는 if문을 사용해야한다.
Reference
이 포스팅은 아래의 강좌를 참고하여 만들어졌습니다.
- 자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94_java-renew/dashboard
'Language > Java' 카테고리의 다른 글
[Java]네이버 번역 파파고 API 적용 및 예제 (0) | 2020.08.21 |
---|---|
[Java]네이버 지역 검색 API 적용하는 방법 정리 (2) | 2020.08.20 |
[Java]특수문자와 서식 문자,소수점 제한 처리 정리 및 예제 (0) | 2020.08.15 |
[Java]배열과 메모리, 다차원 배열 개념 정리 및 예제 (0) | 2020.08.13 |
[Java]배열의 개념, 선언및 초기화하는 방법+예제 (2) | 2020.08.11 |