본문 바로가기
프로그래밍언어/Java

04-1. if문, switch문

by 스꼬맹이브로 2021. 1. 11.
728x90
반응형
SMALL

제어문(또는 흐름 제어문) : 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것

 

제어문 종류 

 - 조건문

 - 반복문

 

이번 시간에는 조건문에 대해 알아보자.

 

<if문>

  • 조건식의 결과에 따라 블록 실행 여부 결정
  • 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean타입 변수가 올 수 있음
  • 조건식이 true일 때 블록 실행, false이면 블록을 실행하지 않음

  1. 조건식이 true(①)이면 실행문 A →실행문 B 실행
  2. 조건식이 false(②)이면 실행문 B 실행

중괄호 { }블록은 여러 개의 실행문을 하나로 묶기 위해 작성되므로 실행문이 하나일 경우에는 쓰지 않아도 된다.

하지만 중괄호 블록이 없으면 코드의 가독성이 좋지 않아 코드 해석이 어려워지고 버그 발생의 원인이 될 수 있기 때문에 생략하지 않고 작성하는 것을 추천한다.

 

public class IfExample {
	public static void main(String[] args) {
		int score = 93;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A 입니다.");
		}
		
		if(score< 90) 
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B 입니다.");
	}
}

결과 : 

 

<if~else 문>

if문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택

  • if문의 조건식이 true → if문 블록 실행
  • if문의 조건식이 false → else문 블록 실행

따라서 조건식의 결과에 따라 2개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어남.

  1. 조건식이 true(①)이면 실행문 A →실행문 C 실행
  2. 조건식이 false(②)이면 실행문 B →실행문 C 실행
public class IfElseExample {
	public static void main(String[] args) {
		int score = 85;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A 입니다.");
		} else {	
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B 입니다.");
		}
	}
}

 

결과 : 

<if ~ else if ~ else문>

  • 조건문이 여러 개인 if문
  • else if문의 수는 제한 없음

  1. 조건식1이 true(①)이면 실행문 A →실행문 D 실행
  2. 조건식1이 false(②)이면 조건식2로 이동
  3. 조건식2가 true(③)이면 실행문 B →실행문 D 실행
  4. 조건식2가 false(④)이면 실행문 C →실행문 D 실행
public class IfElseIfElseExample {
	public static void main(String[] args) {
		int score = 75;
		
		if(score>=90) {
			System.out.println("점수가 100~90 입니다.");
			System.out.println("등급은 A 입니다.");
		} else if(score>=80) {	
			System.out.println("점수가 80~89 입니다.");
			System.out.println("등급은 B 입니다.");
		} else if(score>=70) {
			System.out.println("점수가 70~79 입니다.");
			System.out.println("등급은 C 입니다.");
		} else {
			System.out.println("점수가 70 미만 입니다.");
			System.out.println("등급은 D 입니다.");
		}
	}
}

결과 :

<switch문>

if문과 마찬가지로 조건 제어문이지만 변수가 어떤 값을 갖느냐에 따라 실행문이 선택되는 것이 다른 점이다.

  • 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문 실행
  • case 끝에 break가 없으면 다음 case의 변수 값 상관없이 연달아 실행됨. 
  • default는 생략 가능

* 기본 switch문

public class SwitchExample {
	public static void main(String[] args) {
		int num = 6;
		
		switch(num) {
			case 1:
				System.out.println("1번이 나왔습니다.");
				break;
			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;
			default:
				System.out.println("6번이 나왔습니다.");
				break;
		}
	}
}

결과 :

*break문이 없을 때

public class SwitchNoBreakCaseExample {
	public static void main(String[] args) {
		int time = 9; 
		System.out.println("[현재시간: " + time + " 시]");
		
		switch(time) {
			case 8:
				System.out.println("출근합니다.");
			case 9:
				System.out.println("회의를 합니다.");
			case 10:
				System.out.println("업무를 봅니다.");
			default:
				System.out.println("외근을 나갑니다.");
		}
	}
}

결과 : 

 

 

728x90
반응형
LIST

'프로그래밍언어 > Java' 카테고리의 다른 글

05-1. 참조 타입과 참조 변수  (0) 2021.01.18
04-2. for문, while문, do-while문  (0) 2021.01.12
03-2. 연산자의 종류  (0) 2021.01.08
03-1. 연산자와 연산식  (0) 2021.01.05
02-4. 변수와 시스템 입출력  (0) 2021.01.04