HelloWorld

[Java/자바] 조건문 (if, if-else, switch-case)

프로그래밍 언어/JAVA

조건문이란 주어진 조건에 맞는 코드를 선택하여 실행할 수 있도록 하는 것을 말합니다.

 

if문

if문은 "만약 ~한다면 ~해라" 라는 의미입니다.

if문을 사용하는 형태는 간단 합니다.

if (조건식){
	수행문; //조건식이 참(true)이면 수행문을 실행
}    
//example
int money = 1000;
if(money > 500) {
	System.out.println("과자를 살 수 있습니다.");
}

 

 

if-else문

if-else문은 "만약 ~한다면 ~해라, 그렇지 않다면 ~해라" 라는 의미입니다.

사용하는 형태는 다음과 같습니다.

if(조건식) {
	수행문1; //조건식이 참이라면 수행문1을 실행
}
else {
	수행문2; //조건식이 거짓이라면 수행문2를 실행
}
//example
int money = 1000;
if(money > 500) {
	System.out.println("과자를 살 수 있습니다.");
}
else {
	System.out.println("돈이 부족합니다.");
}

 

 

if-else if-else문

if-else if-else문은 조건이 여러개인 경우에 사용합니다.

사용하는 형태는 다음과 같습니다.

if(조건식1) {
	수행문1; //조건식1이 참이라면 수행문1을 실행
}
else if(조건식2) {
	수행문2; //조건식2이 참이라면 수행문2를 실행
}
else if(조건식3) {
	수행문3; //조건식3이 참이라면 수행문3을 실행
}
else {
	수행문4; //위의 조건식이 모두 거짓일 때 수행문4를 실행
}
//example
int money = 1000;
if(money > 1500) {
	System.out.println("과자를 3봉지 살 수 있습니다.");
}
else if(money > 1000) {
	System.out.println("과자를 2봉지 살 수 있습니다.");
}
else if(money > 500) {
	System.out.println("과자를 1봉지 살 수 있습니다.");
}
else {
	System.out.println("돈이 부족합니다.");
}

 

 

조건문과 조건 연산자

if-else문은 조건 연산자로도 구현할 수 있습니다.

if-else문과 조건 연산자를 사용한 코드는 다음과 같습니다.

//조건문
int num;
if(a > b) {
	num = a;
}
else {
	num = b;
}

//조건연사자는 (조건식) ? A : B; 의 형태로, 조건식이 참이면 A, 거짓이면 B를 실행합니다.
//A, B는 구문이 아니라 항이다. 그러므로 다른 조건문처럼 긴 구문이 아니라 간단한 연산식 혹은 변수, 상수가 들어갑니다.
num = (a > b) ? a : b;

 

 

switch-case문

switch-case문을 사용해서 변수나 수식의 값에 따라 다양한 동작을 수행할 수 있습니다.

switch-case문의 형태는 다음과 같습니다.

switch(조건) {
	case 값1 : 수행문1;
    		break;
    	case 값2 : 수행문2;
    		break;
    	case 값3 : 수행문3;
    		break;
    	default : 수행문4;
}

위 코드에서 break는 switch문을 종료시키는 역할을 하며, 만약 break가 없다면, 조건에 맞는 경우에도 switch문을 종료하지 못 하고, 그 아래의 case와 default 문까지 실행 시키고, switch 문이 종료됩니다. 그렇기 때문에 switch문에는 꼭 break 가 필요합니다.

default는 주어진 값이 어떤 case에도 해당하지 않는 경우에 실행됩니다.

//example
int rank = 1;
String medal;

switch(rank) {
	case 1 : medal = "GOLD";
    		break;
    	case 2 : medal = "SILVER";
    		break;
    	case 3 : medal = "BRONZE";
    		break;
    	default : medal = "none";
}

 

case문의 값은 다르지만 수행문이 같은 경우라면 다음과 같은 형태로도 사용할 수 있습니다.

//example
String address = "서울";

switch(address) {
	case "부산" : case "제주" : case "대구" : System.out.println("기숙사 신청이 가능합니다.");
    		break;
    	case "서울" : case "경기" : System.out.println("기숙사 신청이 불가능합니다.");
    		break;
    	default : System.out.println("주소지를 다시 확인해 주세요.");
}