Java

Java 제어문 - 조건문 ( if / switch 문 )

비뀨_ 2022. 2. 11. 05:38

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

제어문의 종류

  • 조건문 : 조건식에 따라서 다른 실행문을 실행하기 위해서 사용.
  • 반복문 : 어떤 작업을 반복적으로 실행되도록 하는 구문.

조건문

if - else문

아래는 조건문의 기초적인 사용을 적어 놓은 것이다.

if의 괄호 "( )" 안의 값이 참일 경우  "참임"이라는 글자가 Eclipse의 Console에 출력한다.

반대로 값이 참이 아닐 경우 else 문장을 실행해 "거짓임" 이라는 글자를 출력하게 된다.

** if 만 있어도 됨.

package test;

public class ConditionEx {
	public static void main(String args[]) {
		boolean a = true;
		if(a) { // 참일 경우 실행하는 구문
			System.out.println("참임");
		}else {	// 거짓일 경우 실행하는 구문
			System.out.println("거짓임");
		}
	}
}

if - else if -else문

위의 if -else 문에서 else if가 추가 되었다.

그냥 기존의 if [한가지의 조건]에 한가지 조건을 더한 것이다.

a 가 10보다 작을 때 "a는 10보다 작음" 이 출력이 되고, 

a 가 10과 100 사이면 "a는 10과 100 사이에 있음"을 출력하고

a 가 101 이상이면 else문이 실행된다.

 

** else if 는 0개 이상 사용 가능. 1000개도 쓸 수 있음.

 

package test;

public class ConditionEx {
	public static void main(String args[]) {
		
		int a = 10;
		
		if(a < 10) { // 참일 경우 실행하는 구문
			System.out.println("a는 10보다 작음.");
		}else if(a >= 10 && a <= 100) {
			System.out.println("a는 10과 100의 사이에 있음.");
		}else {	// 거짓일 경우 실행하는 구문
			System.out.println("a는 100보다 큼!");
		}
	}
}

switch 문

switch/case 문이라고도 하며 if문과 같다. 

다른 점은 if문은 조건값 ( 참 / 거짓 )을 비교하는데 비해, switch는 을 비교한다.

기본적인 구조는 switch의 괄호 안에 값을 넣으면 해당하는 값을 찾아준다.

package test;

public class ConditionEx {
	public static void main(String args[]) {

		int a = 1;

		switch (a) {
			case 1: System.out.println("a는 1");
			case 2: System.out.println("a는 2");
			case 3: System.out.println("a는 3");
			case 4: System.out.println("a는 4");
			case 5: System.out.println("a는 5");
			case 6: System.out.println("a는 6");
			case 7: System.out.println("a는 7");
			default:System.out.println("기본값임");
		}
	}
}

이 구문을 실행시키면 무슨 결과가 나올까?

이런 결과가 나온다. a는 1이기 때문에 a는 1 이란 값이 나와야하지만 모든 값이 출력된다.

왜 그러냐면 a는 해당하는 값을 찾고 아래 구문을 모두 실행해버리기 때문이다. 

이렇게 하면 생각했던대로 구문이 돌아가지 않는 경우가 있기 때문에 break 키워드를 작성해 줘야 한다.

package test;

public class ConditionEx {
	public static void main(String args[]) {

		int a = 1;

		switch (a) {
			case 1: System.out.println("a는 1");break;
			case 2: System.out.println("a는 2");break;
			case 3: System.out.println("a는 3");break;
			case 4: System.out.println("a는 4");break;
			case 5: System.out.println("a는 5");break;
			case 6: System.out.println("a는 6");break;
			case 7: System.out.println("a는 7");break;
			default:System.out.println("기본값임");break;
		}
	}
}

위처럼 break 키워드를 추가하면 아래와 같이 해당하는 값만 출력하고 멈춰버린다.

보통 if문을 많이 쓰지만, 조건식이 많아버리면 if문 지옥이 펼쳐져버리기 때문에, 때에 따라서 if 와 switch를 적절히 사용할 수 있어야한다.