[Java] 11. 조건문

psj98·2023년 1월 1일
0

생활코딩 JAVA

목록 보기
11/41
post-custom-banner

1. 조건문이란?

조건문이란, 주어진 조건에 따라서 애플리케이션을 다르게 동작하도록 하는 것으로 프로그래밍의 핵심 중의 하나라고 할 수 있다.


2. 조건문의 문법

1. if

조건문은 "if"로 시작한다. 아래 코드를 보자. if 뒤의 괄호를 if절이라고 부르고, 중괄호가 감싸고 있는 구간을 then 절이라고 부르겠다. 조건문에서는 if 절의 값이 true일 때 then 절이 실행된다. if 절이 false이면 then 절은 실행되지 않는다.

if(){ // if 절
	  // then 절
}

다음 예제의 결과는 if 뒤에 true가 왔기 때문에 "result : true"가 출력된다.

if(true){ // true이기 때문에 then절 실행
	System.out.println("result : true");
}

다음 예제의 결과는 if 뒤에 false가 왔기 때문에 아무것도 출력하지 않는다.

if(false){ // false이기 때문에 then절 실행 X
    System.out.println("result : true");
}

2. else

if만으로는 좀 더 복잡한 상황을 처리하는데 부족하다. 아래의 코드처럼 if-else절은 if절의 값이 true일 때 then절이 실행되고, false일 때 else절이 실행된다.

중요한 점은 if와 else절이 모두 실행되지 않고 둘 중 하나만 실행된다.

if(){ // if 절
	  // then 절
} else{ // else 절

}

다음 예제의 결과는 if 뒤에 true가 왔기 때문에 1이 출력된다.

if (true) {
	System.out.println(1);
} else {
	System.out.println(2);
}

다음 예제의 결과는 if 뒤에 false가 왔기 때문에 else절이 실행되고 2가 출력된다.

if (false) {
	System.out.println(1);
} else {
	System.out.println(2);
}

3. else if

else if절을 이용하면 조건문의 흐름을 좀 더 자유롭게 제어할 수 있다. if절의 값이 true라면 then절이 실행된다. false라면 else if절로 제어가 넘어간다. else if절의 값이 true라면 else if then절이 실행된다. false라면 else 절이 실행된다. else if절은 여러 개가 복수로 등장할 수 있고, else절은 생략이 가능하다. else절이 else if절보다 먼저 등장할 수는 없다.

else if절의 값이 true인 것이 여러 개일 때, 처음으로 true가 나오는 것만 실행된다.
조건문으로 묶여 있을 때는 여러 개가 true여도 가장 처음에 true 값이 나오는 한 개만 실행된다.

if(){ 		 // if 절
	  		 // then 절
} else if(){ // else if 절
			 // else if then 절
} else{ 	 // else 절

}

if(false){
    System.out.println(1);
} else if(true) {
    System.out.println(2); // 2 출력
} else if(true) {
    System.out.println(3); // 출력 X
} else {
    System.out.println(4);
}

4. 조건문 응용

  • 아이디가 동일한지 체크하는 프로그램을 만들어보자.
package org.opentutorials.javatutorials.condition;
 
public class LoginDemo {
    public static void main(String[] args) {
        String id=args[0];
        
        /* 아이디 체크 */
        if(id.equals("word")){
            System.out.println("right");
        } else {
            System.out.println("wrong");
        }
    }
}

/* 실행 결과 */
// 입력
> java LoginDemo word

// 출력
> right

우린 아직 배열을 배우지 않았다. 따라서 위의 코드가 무엇인지 정확하게 설명하는 것은 지금 단계에서는 불필요하다. args[0]가 첫 번째 입력 값(word)을 의미한다고만 이해하자. 위의 코드는 입력 값을 문자열 타입의 변수 id에 담고 있다.

사용자가 입력한 데이터가 word와 같은지 비교할 때는 아래와 같이 id.equals("word")이라는 구문을 사용한다. 즉, 사용자가 입력한 값(id)가 "word"인지를 확인하는 것이다. 그 결과가 true라면 right가 출력되고, false라면 wrong이 출력될 것이다.

5. 조건문의 중첩

  • 아이디와 비밀번호가 동일한지 체크하는 프로그램을 만들어보자.
package org.opentutorials.javatutorials.condition;
 
public class LoginDemo {
	public static void main(String[] args) {
		String id=args[0];  // 아이디
		String pwd=args[1]; // 비밀번호

		/* 아이디 체크 */
		if (id.equals("word")) {
        	/* 아이디가 동일하면 비밀번호 체크 */
		    if (pwd.equals("1234")) {
		        System.out.println("right");
		    } else {
		        System.out.println("wrong");
		    }
		} else {
		    System.out.println("wrong");
		}
	}
}

/* 실행 결과 */
// 입력
> java LoginDemo word 1234

// 출력
> right

if문 안에 다시 if문이 등장했다. 즉, 사용자가 입력한 값과 아이디가 일치하는지 확인한 후에 아이디가 일치한다면 비밀번호가 일치하는지 확인하는 것이다. 이렇게 조건문은 조건문 안에 중첩적으로 사용될 수 있다.


3. switch 문

1. switch

조건문의 대표적인 문법은 if문이다. 사용 빈도는 적지만 조건이 많다면 switch문이 로직을 보다 명료하게 보여줄 수 있다. 아래의 코드를 보자.

switch(1){
case 1:
    System.out.println("one");
case 2:
    System.out.println("two");
case 3:
    System.out.println("three");
}

switch(2){
case 1:
    System.out.println("one");
case 2:
    System.out.println("two");
case 3:
    System.out.println("three");
}

/* 실행 결과 */
> one
> two
> three
> two
> three

switch 뒤의 괄호에 숫자로 1이 주어지면 case 1에 해당하는 로직 이후의 모든 case들이 실행된다.
즉, switch 뒤의 괄호와 case 뒤의 값이 일치하는 경우 실행된다.

2. break

위의 예제는 해당 case 이후의 모든 값을 출력한다. 원하는 것만 출력할 경우, break를 추가해야 한다.

switch(1){
case 1:
    System.out.println("one");
    break;
case 2:
    System.out.println("two");
    break;
case 3:
    System.out.println("three");
    break;
}

switch(2){
case 1:
    System.out.println("one");
    break;
case 2:
    System.out.println("two");
    break;
case 3:
    System.out.println("three");
    break;
}

/* 실행 결과 */
> one
> two

break를 만나면 switch 문의 실행이 즉시 중지된다. 해당 case를 실행하고 탈출한다고 생각하면 쉽다.

3. default

default에 대해 알아보자. 가장 마지막은 default로 끝난다. 즉, 주어진 케이스가 없는 경우 default문이 실행된다는 것을 알 수 있다.

switch(1){
case 1:
    System.out.println("one");
    break;
case 2:
    System.out.println("two");
    break;
case 3:
    System.out.println("three");
    break;
default:
	System.out.println("default");
    break;
}

switch(4){
case 1:
    System.out.println("one");
    break;
case 2:
    System.out.println("two");
    break;
case 3:
    System.out.println("three");
    break;
default:
	System.out.println("default");
    break;
}

/* 실행 결과 */
> one
> default

4. 참고

생활코딩

profile
SSAFY 9기
post-custom-banner

0개의 댓글