7강. 제어의 흐름 이해하기(1)

철새·2022년 2월 7일
0
  • Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
  • Section 0. 자바 기본 익히기
  • 7강 "제어의 흐름 이해하기(1)"
  • 조건문 > if문과 if-else문 > if - else if - else문 > 조건문과 조건 연산자 > switch - case문

조건문

  • 주어진 조건에 따라 다른 수행문이 실행되도록 프로그래밍 하는 것

if문과 if - else문

if(조건문){
	조건문이 참일 경우에 실행할 실행문;
}else{
	조건문이 거짓일 경우에 실행할 실행문;
}

실행문이 한 줄일 경우 중괄호를 쓰지 않아도 되지만 가독성과 나중에 실행문이 추가될 경우를 위해 쓰는 것이 좋다고 한다.

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

if - else if - else문

(조건이 여러 개에 해당하는 경우에 사용)

if(조건1){
	문장1;
}else if(조건2){
	문장2;
}else if(조건3){
	문장3;
}else{
	문장4;
}

중간에 조건이 참인 경우가 발생하면 그 뒤쪽 else if문은 실행하지 않고 조건문을 벗어난다.

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 = 2000;
			System.out.println("중,고등학생입니다.");
		}else {
			charge = 3000;
			System.out.println("일반인 입니다.");
		}
		
		System.out.println("입장료는 " + charge + "원 입니다.");
	}
}

if-else if-else문 출력
else if 문으로 처리하지 않고 전부 if문으로 작성한다면 조건이 참일 때 조건문을 벗어나지 않고 그 다음 조건이 참인지 확인하기 때문에 "초등학생입니다."와 "중,고등학생입니다." 둘 다 출력된다.

조건문과 조건 연산자

  • 간단한 if - else 조건문은 조건 연산자로 구현할 수 있다.
if-else문조건 연산자
if (a > b)
max = a;
else
max = b;
max = (a > b) ? a : b

switch - case문

  • 조건식의 결과가 정수 또는 문자열의 값이고, 그 값에 따라 수행문이 결정될 때 if - else if - else문을 대신하여 switch - case문을 사용할 수 있다.
public class SwitchCase {
	public static void main(String[] args) {
		int rank = 1;
		char medalColor;

		switch (rank) {
			case 1:
				medalColor = 'G';
				break;
			case 2:
				medalColor = 'S';
				break;
			case 3:
				medalColor = 'B';
				break;
			default:
				medalColor = 'A';
		}

		System.out.println(rank + "등 메달의 색깔은 " + medalColor + "입니다.");
	}
}

switch-case문 출력
각각의 case마다 break;를 넣어주지 않으면 해당하는 case가 있더라도 그 다음 case까지 실행된다.
(break;를 만날 때까지...)

이것을 이용해서 각 달에 몇 일씩 있는지 알아보는 코드를 작성해보았다.

public class SwitchCase2 {
	public static void main(String[] args) {
		int month = 8;
		int day;
		
		switch (month) {
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			day = 31;
			break;
		case 2: day = 28; break;
		case 4: case 6: case 9: case 11:
			day = 30;
			break;
		default: day = 0;
		}
		
		System.out.println(month + "월은 " + day + "일 입니다.");
	}
}

break 없는 switch-case문 출력

month는 8이고 case 8에는 break; 가 없으므로 그 뒤 case 10, case 12를 거쳐 day에 31이 대입된 후 break;를 만나 switch - case문을 벗어나게 된다.

profile
효율성을 추구하며 세상을 떠도는 철새입니다.

0개의 댓글