본문 바로가기

하고 싶은 거 하는 개발/Java 프로그래밍 기초

[JAVA] 자바(JAVA) 조건문에 대하여(if 문)

728x90

 

조건문이란 주어진 조건에 따라 프로그램이 다르게 동작하도록 하는 것으로, 프로그램의 핵심입니다. 

 

지난 포스팅에서 배운 비교 연산자의 결과로 리턴되는 true, false가 조건문에서 핵심적인 역할을 합니다. 

기억이 안 나시는 분은 아래의 포스팅을 참조하시면 됩니다. 

 

2020/11/22 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 비교 연산자에 대하여(+equals, boolean 타입)

 

조건문(if 문)

이번 포스팅에서 두 개의 조건문(if 문, switch 문) 중 if 문에 대해서 알아보겠습니다.

 

if

조건문(if 문)은 아래와 같이 if로 시작합니다. 

 

 

그림에서 보듯이, if 뒤에 있는 괄호 안의 값이 true인 경우 중괄호 안으로 들어가 동작을 실행합니다. 

 

예를 통해 직접 if 문을 실습해보겠습니다. 

 

		if ( 1 > 0 ) {
			System.out.println("true");
		}

 

해당 코드를 실행할 경우, 아래와 같이 'true'가 출력됩니다. 

 

 

1은 0보다 크므로 비교 연산자 >의 결과로 true가 리턴되고, 중괄호 안으로 들어가 'true'가 출력되었습니다.

 

그렇다면 아래 코드의 실행 결과는 무엇일까요?

 

		if ( 1 == 0 ) {
			System.out.println("true");
		}

 

1과 0은 같지 않습니다. 따라서 비교 연산자 ==의 결과로 false가 리턴되고 콘솔에는 아무것도 출력되지 않았습니다. 

 

 

if 뒤의 괄호 안에 비교 연산자 대신 true, false를 직접 입력해도 동일하게 동작합니다. 

 

		if ( true ) {
			System.out.println("true");
		}

 

true의 결과

 

		if ( false ) {
			System.out.println("true");
		}

 

false의 결과

 

if만으로는 true인 경우만 처리할 수 있습니다. false인 경우를 처리하기 위해 else가 있습니다. 

 


if - else 

 

if - else는 아래 그림과 같이 true인 경우에는 if 뒤에 있는 중괄호로 들어가 동작하고, true가 아닌 경우 즉, false인 경우에는 else 뒤에 있는 중괄호로 들어가 동작합니다. 

예를 통해 직접 실습해보겠습니다. 

 

		if ( 1 > 0 ) {
			System.out.println("true");
		} else {
			System.out.println("false");
		}

 

1은 0보다 크므로 비교 연산자 >의 결과로 true가 리턴되고, if 뒤의 중괄호 안으로 들어가 'true'가 출력되었습니다.

 

 

그렇다면 비교 연산자의 결과로 false가 리턴되는 '1 == 0'의 결과는 무엇일까요

		if ( 1 == 0 ) {
			System.out.println("true");
		} else {
			System.out.println("false");
		}

1과 0은 같지 않습니다. 따라서 비교 연산자 ==의 결과로 false가 리턴되고 if 뒤의 중괄호가 아닌 else 뒤의 중괄호로 들어가

콘솔에 false가 출력됩니다.  

 

 

if - else를 이용해 비교 연산자의 결과가 true인 경우와 false인 경우 두 가지 경우를 처리할 수 있습니다. 

 

만약 두 가지 경우가 아닌 세 가지, 네 가지 경우를 처리하고 싶을 때는 else if를 사용해야 합니다. 

 


else if

 

else if는 아래 그림과 같이 사용합니다. 

  1. if 뒤의 괄호에 있는 조건이 true인 경우, if 뒤의 중괄호로 들어가 동작합니다. 
  2. if 뒤의 괄호에 있는 조건이 false인 경우, 아래로 내려가 else if 뒤의 괄호에 있는 조건을 확인합니다. 
  3. else if 뒤의 괄호에 있는 조건이 true인 경우, else if 뒤의 중괄호로 들어가 동작합니다.
  4. else if 뒤의 괄호에 있는 조건이 false인 경우, 아래 else 뒤의 중괄호로 들어가 동작합니다. 

예시와 함께 실습해보겠습니다. 

 

		if ( 1 > 0 ) {
			System.out.println("if true");
		} else if ( 1 > 0) {
			System.out.println("else if true");
		} else {
			System.out.println("else");
		}

 

해당 코드를 실행하면 가장 먼저 if 뒤의 괄호를 확인합니다. 1 > 0의 결과는 true이므로 if 뒤의 중괄호로 들어가 아래와 같이 'if true'가 출력됩니다. 

 

아래 코드의 실행 결과는 무엇일까요?

 

		if ( 1 == 0 ) {
			System.out.println("if true");
		} else if ( 1 > 0) {
			System.out.println("else if true");
		} else {
			System.out.println("else");
		}

 

if 뒤의 괄호에 있는 비교 연산자의 결과는 false입니다.

따라서 중괄호로 들어가지 않고 아래 else if 뒤의 괄호를 확인합니다. 1 > 0의 결과는 true이므로 else if 뒤의 중괄호로 들어가

'else if true'가 출력됩니다. 

 

그렇다면 아래의 코드의 실행 결과는 어떨까요?

 

		if ( 1 == 0 ) {
			System.out.println("if true");
		} else if ( 1 == 0) {
			System.out.println("else if true");
		} else {
			System.out.println("else");
		}

if 뒤의 괄호에 있는 비교 연산자의 결과는 false입니다.

따라서 중괄호로 들어가지 않고 아래 else if 뒤의 괄호를 확인합니다.

이번에는 else if 뒤의 괄호의 결과 또한 false이므로 아래의 else 뒤의 중괄호로 들어가 'else'가 출력됩니다.

 

이해가 좀 되셨나요? 

 

else if는 원하는 조건의 수에 따라 무한히 추가할 수 있습니다. 

 

		if ( 조건1 ) {
			System.out.println("조건1");
		} else if ( 조건2 ) {
			System.out.println("조건2");
		} else if ( 조건3 ) {
			System.out.println("조건3");
		} else if ( 조건4 ) {
			System.out.println("조건4");
		} 
        .
        .
        .
        

 

반면 else는 없어도 무방하지만, 사용한다면 1번만 사용 가능합니다. 

 

 

프로그래밍을 하면서 가장 많이 사용하는 구문이 아닌가 합니다. 

 

다양한 경우를 실습해보면서 체득하시기 바랍니다. 

반응형