if (조건식) {
//조건식이 참이라면 실행되는 블록.
}
if
문의 소괄호 안에는 boolean
값으로 평가될 수 있는 조건식을 넣어주고, 중괄호 안의 실행 블록에는 조건식이 참일 때 실행하고자 하는 코드를 넣어주면 된다.
cf) '블록(block)'
: 중괄호 {} 를 이용해 여러 문장을 하나의 단위로 묶을 수 있다.
if(조건식1) {
//조건식1이 참이라면, 실행되는 블록.
}
else if (조건식2) {
//조건식1이 참이 아니면서 조건식2가 참일 때, 실행되는 블록.
}
else {
//조건식1과 2가 모두 참이 아닐 때, 실행되는 블록.
//else문은 생략 가능.
}
if...else 문
은 조건식의 결과에 따라 실행블록을 선택한다. 1) if문의 조건식이 true
-> 해당 블록이 실행.
2) if문의 조건식이 false
-> 다음으로 넘어가 else if 문의 조건식을 검사.
3) else if문의 모든 조건식이 false
-> 나머지 경우를 의미하는 else 블록 실행.
if 문과 마찬가지로 조건 제어문.
예시
package com.company;
import java.util.Scanner;
public class Main {
static Scanner myInput = new Scanner(System.in);
public static void main(String[] args) {
String dice = myInput.nextLine(); //주사위 번호 입력
switch (dice) {
case "1":
System.out.println("1번");
break; //다음 case를 실행하지 않고, switch문 탈출!
case "2":
System.out.println("2번");
break;
case "3":
System.out.println("3번");
break;
case "4":
System.out.println("4번");
break;
case "5":
System.out.println("5번");
break;
case "6":
System.out.println("6번");
break;
default: //switch문의 괄호 안 값과 같은 값이 없으면, 여기서 실행문 실행
System.out.println("없는 숫자! " + dice);
break;
}
}
}
switch
문은 if
문처럼 조건식이 true
일 경우, 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문 선택
if
문은 조건식의 결과가 true
와 false
두 가지 밖에 없기 때문에 경우의 수가 많아질수록 if-else
를 반복적으로 추가해야 하기 때문에 코드가 복잡해진다.
그러나 switch
문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if
문보다 코드가 간결하다.
witch
문은 괄호 안의 값과 동일한 값을 갖는 case
로 가서 실행문을 실행한다.
그러나 만약 괄호 안의 값과 동일한 값을 갖는 case
가 없으면 default
로 가서 실행문을 실행한다.
(default
는 생략 가능하다.)
! 주의할 점
break
문을 작성하지 않으면 switch
문을 탈출하지 않고 모든 case
문을 실행하게 되어 원하는 방식으로 동작하지 않는다.(이를 fall through라고 한다).
switch
문에는 int
뿐만 아니라, char
타입 변수도 사용가능하고, 자바 7부터는 String
타입의 변수도 올 수 있다.