본문 바로가기

Language/Java

[Java] 조건문

조건문 : 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것

 

if문과 if-else문

if문 : 만약 ~ 라면 ●

if(조건식) {
	수행문;  //조건식이 참일 경우 이 문장 수행
}

주어진 조건식이 '참'일 경우 중괄호 안에 있는 문장을 실행한다.

조건식에는 결과가 참, 거짓으로 판별되는 식이나 참, 거짓의 값을 가진 변수, 상수를 사용할 수 있다.

연산의 결과가 참, 거짓이 되는 관계 연산자를 자주 사용한다.

int age = 10;
if(age >= 8) {   //age값이 8 이상이면
	System.out.println("학교에 다닙니다");   //이 문장 실행
}

 

 if-else문 : 만약 ~ 라면, 그렇지 않다면

if(조건식) {
	수행문1;  //조건식이 참일 경우 이 문장 수행
}
else{
	수행문2;  //조건식이 거짓일 경우 이 문장 수행
}

조건식을 만족하는 경우와 만족하지 않는 경우를 모두 나타낼 때는 if-else문을 사용한다.

주어진 조건식이 '참'일 경우 if문 블록 안에 있는 문장을 수행하고,

'거짓'일 경우에는 else문 블록 안에 있는 문장을 수행한다.

 

[실습] 나이에 따라 다른 문장 출력하기
package ifexample;

public class IfExample1 {
	public static void main(String[] args) {
		int age = 7;
		if(age > 8) {
			System.out.println("학교에 다닙니다.");
		}
		else {
			System.out.println("학교에 다니지 않습니다.");
		}
	}
}

 

[실습] 성별에 따라 다른 문장 출력하기
package ifexample;

public class IfExample1_1 {
	public static void main(String[] args) {
		char gender = 'F';
		if(gender == 'F') {
			System.out.println("여성입니다.");
		}
		else {
			System.out.println("남성입니다.");
		}
	}
}

 

 

 

if-else if-else문

하나의 상황에 조건이 여러 개인 경우 if-else if-else문으로 표현

if(조건식1) {
	수행문1;  //조건식1이 참일 경우 수행
}
else if(조건식2) {
	수행문2;  //조건식2가 참일 경우 수행
}
else if(조건식3) {
	수행문3;  //조건식3이 참일 경우 수행
}
else {
	수행문4;  //위의 조건이 모두 해당하지 않는 경우 수행
}
수행문 5;  //if-else if-else문이 끝난 후 수행

 

[실습] if-else if-else문으로 입장료 계산하기
package ifexample;

public class IfExample2 {
	public static void main(String[] args) {
		int age = 9;
		int charge;
		
		if(age > 8) {
			charge = 1000;
			System.out.println("취학 전 아동입니다.");
		}
		else if(age < 14) {
			charge = 2000;
			System.out.println("초등학생입니다.");
		}
		else if(age < 20) {
			charge = 2500;
			System.out.println("중, 고등학생입니다.");
		}
		else {
			charge = 3000;
			System.out.println("성인입니다.");
		}
		System.out.println("입장료는" + charge + "원입니다.");
	}
}

 

 if-else if문과 if-if문의 차이 

if-else if문은 하나의 조건을 만족하면 나머지 조건을 비교하지 않고 다음 수행문으로 넘어간다.

하지만, if문으로만 이루어진 코드는 조건마다 각각 비교하기 때문에 여러 조건에 만족하는 경우가 생겨

원치 않는 결과를 초래할 수 있다.

그래서 하나의 상황에 여러 조건을 비교하는 경우에는 if-else if문으로 코드를 작성해야 한다.

 

[실습] 성적에 따라 학점 부여하기 - 나 혼자 코딩
앞에서 입력한 예제 코드를 바탕으로 성적에 따라 학점을 부여하는 프로그램을 만들어 보자.
100~90점은 A, 89~80점은 B, 79~70점은 C, 69~60점은 D, 나머지는 F이다.
int형 변수 score와 char형 변수 grade를 사용하여 score에 따른 grade를 출력해 보자.
package ifexample;

public class IfExample_grade {
	public static void main(String[] args) {
		int score = 84;
		char grade;
		
		if(score >= 90) {
			grade = 'A';
		}
		else if(score >= 80) {
			grade = 'B';
		}
		else if(score >= 70) {
			grade = 'C';
		}
		else if(score >= 60) {
			grade = 'D';
		}
		else {
			grade = 'F';
		}
		System.out.println("성적 : " + score);
		System.out.println("학점은 " + grade + "입니다.");
	}
}

 

 

 

조건문과 조건연산자

if-else문은 조건 연산자로도 구현이 가능하다

서로 다른 두 수 a, b를 비교해 둘 중 더 큰 수를 max 변수에 대입하는 코드를 구현

 if(a > b)
   max = a;
 else
   max = b;
  max = (a > b) ? a : b;

가독성은 if-else문이 더 좋음

선택이 두 가지만 있는 간단한 조건문에서는 if-else문뿐만 아니라 조건 연산자도 사용할 수 있다.

 

 

 

switch-case문

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

case : ~ break;까지가 조건에 해당하는 문장이다.

일치하는 case가 없다면 default 코드가 수행되는데 if-else if문에서 맨 마지막 else문과 같은 역할이다.

break는 switch-case문의 수행을 멈추고 빠져나가도록 만든다.

주로 조건이 하나의 변수 값이나 상수 값으로 구분되는 경우 switch-case문을 사용한다.

 

[실습] switch-case문 예제
package ifexample;

public class SwitchCase {
	public static void main(String[] args) {
		int ranking = 1;
		char medalColor;
		
		switch(ranking) {
		case 1 : medalColor = 'G';
			break;
		case 2 : medalColor = 'S';
			break;
		case 3 : medalColor = 'B';
			break;
		default : medalColor = 'A';
		}
		System.out.println(ranking + "등 메달의 색깔은 " + medalColor + "입니다.");
	}
}

 

case문은 여러 경우를 동시에 처리할 때도 사용이 가능하다.

case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : day = 31;
	break;
case 4 : case 6 : case 9 : case 11 : day = 30;
	break;
case 2 : day = 28;
	break;

각 달의 날짜를 출려한 예제를 만들 때 위처럼 사용할 수도 있다.

 

switch-case문에서 break문의 역할

break는 case문의 수행을 멈추고 빠져나가도록 만든다.

switch-case문에서 여러 case가 있을 경우, break를 사용하지 않으면 첫 번째 case 조건을 만족해 문장이 실행이 되었더라도 switch-case문에서 빠져나오지 않고 잇따라 나오는 문장까지 모두 수행되어 마지막 default문의 문장이 최종 적용되어 원하는 결과를 얻을 수 없다.

switch-case문에서 조건에 맞는 수행문을 수행한 후 빠져나올 수 있도록 break를 꼭 사용해야 한다.

 

 

 

case문에 문자열 사용하기

switch-case문의 case값에 정수 값뿐만 아니라 문자열도 사용이 가능하다. (자바 7부터 가능)

[실습] switch-case문 예제 (2)
package ifexample;

public class SwitchCase2 {
	public static void main(String[] args) {
		String medal = "Gold";
		
		switch(medal) {
		case "Gold" :
			System.out.println("금메달입니다.");
			break;
		case "Silver" :
			System.out.println("은메달입니다.");
			break;
		case "Bronze" :
			System.out.println("동메달입니다.");
			break;
		default :
			System.out.println("메달이 없습니다.");
			break;
		}
	}
}

 

[실습] switch-case문 연습하기 - 나 혼자 코딩
5층 건물이 있다. 1층 약국, 2층 정형외과, 3층 피부과, 4층 치과, 5층 헬스클럽이다.
건물의 층을 누르면 그 층이 어떤 곳인지 알려주는 엘리베이터가 있다고 할 때 앞의 예제를 참고해서 switch-case문으로 구현해보자. (5인 경우 '5층 헬스클럽입니다'라고 출력)
package ifexample;

public class SwitchCase3 {
	public static void main(String[] args) {
		int floor = 3;
		String biz;
		
		switch(floor) {
		case 1 :
			biz = "약국";
			break;
		case 2 :
			biz = "정형외과";
			break;
		case 3 :
			biz = "피부과";
			break;
		case 4 :
			biz = "치과";
			break;
		default :
			biz = "헬스클럽";
			break;
		}
		System.out.println(floor + "층 " + biz + "입니다.");
	}
}

 

 

https://github.com/hyunjin1292/Java_study

 

GitHub - hyunjin1292/Java_study: java study book practice example

java study book practice example. Contribute to hyunjin1292/Java_study development by creating an account on GitHub.

github.com


※ 이지스퍼블리싱의 'Do it! 자바 프로그래밍 입문' 책을 보고 공부한 내용을 정리하고 있습니다.

'Language > Java' 카테고리의 다른 글

[Java] 객체지향 프로그래밍과 클래스 정의  (1) 2022.09.21
[Java] 반복문  (0) 2022.09.20
[Java] 비트 연산자  (0) 2022.08.10
[Java] 기본 연산자  (0) 2022.08.08
[Java] 형 변환  (0) 2022.07.22