제이제이
article thumbnail

 

조건문이란?


  • 조건문은 주어진 식의 조건에 따라 서로 다른 문장을 수행하도록 제어하는 명령어입니다.
  • 조건문은 크게 1.if문, 2.if~else문, 3.if ~ else if ~else문, 4. switch문 구별됩니다.

 

if문 (~라면 실행해라)

  • if문은 조건의 결과가 참(true)라면, 주어진 명령문을 실행하며 거짓(false)이라면 실행하지 않습니다.

 

if문의 기본 골격

  • if문의 조건식에는 true 혹은 false를 반환하는 연산 또는 값이 오게 됩니다.
  • 조건이 참(true)일 경우, if문의 내부가 실행되고 거짓일 경우(false)일 경우, if문을 무시하고 건너뛰어 실행합니다.
if(조건식) { 
	//결과가 참일 경우 실행하고자 하는 명령문
  }

 

  • 다음의 예를 통해 if문을 살펴 보겠습니다.

 

💻 예시 코드

class IfBasic{
	public static void main(String[] args){
		int number1 = 5;
		int number2 = 10;

		//조건문 if문
		if(number1 < number2){ //number2가 number1보다 크다면 (true)
		  //참일 경우 실행 되는 영역
		  System.out.println("number2가 number1보다 큰 값입니다.");
		}
	}
}

 

📸 출력 결과

number2가 number1보다 큰 값입니다.

 

if ~ else문 (~라면 if문을 실행하고 ~이 아니면 else문을 실행해라)

  • if문과 함께 사용하는 else문은 if문과 반대로 주어진 조건식의 결과가 거짓(false)이면, 주어진 명령문을 실행합니다.

 

if ~ else문의 기본 골격

if(조건식){
	//조건식의 결과가 참일 경우 실행되는 명령문 영역
 }else{
	//조건식의 결과가 거짓일 경우 실행되는 명령문의 영역
 }

 

  • 앞서 본 if문의 예를 변영하여 if ~ else문을 살펴보겠습니다.

 

💻 예시 코드

class IfBasic{
	public static void main(String[] args){
		int number1 = 5;
		int number2 = 10;

		//조건문 if문 ~ else문
		if(number1 == number2){ //조건: number1과 number2가 같은가?
		
               //참(true)일 경우 실행되는 영역(number1과 number2같다라면)
			System.out.println("number1과 number2는 값이 같습니다.");
		}else{

	      //거짓(false)일 경우 실행되는 영역(number1과 number2가 같지 않다면)
		 System.out.println("number1과 number2는 값이 다릅니다. ");
		}
	}
}

 

📸 출력 결과

number1과 number2는 값이 다릅니다.

 

if ~ else if ~ else문

( 조건1이라면 if문을 실행하고 조건2이라면 else if문을 실행해라, 만약 조건1과 조건2 둘 다 아니면 마지막으로 else문을 실행해라)

  • 여러가지 문장에서 조건에 따라 하나의 문장만 실행하고 싶을 경우 if ~ else if ~ else문을 사용합니다.
  • java프로그램은 맨 위의 조건을 검사하면서 실행합니다. 그러다가 조건이 true인 부분을 만나면 해당 부분에 속한 문장을 실행하고
    나머지는 건너 뛰게 됩니다.
  • 그러다가 마지막까지 조건이 true인 부분을 만나지 못하면 맨 마지막에 위치한 else문의 영역에 있는 문장을 실행하게 됩니다.
  • 실행될 명령문이 한 줄뿐이라면 줄괄호({ })를 생략할 수 있습니다.

 

if ~ else if ~ else문의 기본 골격

if (조건식1) {

    //조건식1의 결과가 참일 때 실행하고자 하는 명령문;

} else if (조건식2) {

    //조건식2의 결과가 참일 때 실행하고자 하는 명령문;

} else {

    //조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;

}

 

  • 다음의 예를 통해 if ~ elseif ~ else문을 살펴보겠습니다.

💻 예시 코드

class IEIE{
	public static void main(String[] args){
		char ch = 'X';
		
		if (ch >= 'a' && ch <= 'z') {
   			 System.out.println("해당 문자는 영문 소문자입니다.");

		} else if (ch >= 'A' && ch <= 'Z') {
  			 System.out.println("해당 문자는 영문 대문자입니다.");

		} else {
   			 System.out.println("해당 문자는 영문자가 아닙니다.");
	 }
	}
}

 

📸 출력 결과

해당 문자는 영문 대문자입니다.

 

 

+) if ~ else문과 동일한 의미를 갖는 삼항 연산자

  • 자바에서는 간단하게 삼항 연산자를 통해서 if ~else문을 표현할 수 있습니다.

 

삼항 연산자이란?

  • 자바에서 피연산자가 3개인 조건 연산자입니다.

 

삼항 연산자의 골격

  • 조건이 참(true)인 경우, 반환값 1을 반환하고 거짓(false)일 경우, 반환값 2를 반환합니다.
조건 ? 반환값1(참일 경우) : 반환값2(거짓인 경우)

 

  • 다음의 예를 통해 삼항 연산자를 살펴보겠습니다.

💻 예시 코드

class CondOp{
	public static void main(String[] args){
		int num1 = 5; 
		int num2 = 7;

		int result;

		//조건이 참이라면 num1을 반환하고 거짓일 경우 num2를 반환합니다.
		result = (num1 - num2 > 0) ? num1 : num2;

		System.out.println("두 정수 중 더 큰 수는 " + result + "입니다.");
	}
}

 

📸 출력 결과

두 정수 중 더 큰 수는 7입니다.

 

swith문

  • if ~ elseif ~else문과 같이 조건에 따라 실행할 문장을 구별합니다.
  • switch문은 if ~else 문보다 가독성이 좋으며 3개 이상의 여러가지의 조건이 있을 경우 switch문을 자주 사용합니다.
  • 다만) switch문의 조건에는 int형으로 형변환할 수 있는 값만이 사용됩니다.
    즉, (byte형,short형, char형, int형, 리터럴 상수)가 사용될 수 있습니다.

 

swith문의 기본 골격

  • switch문에는 조건에 따른 위치를 표시하고자 레이블(라벨)이 사용됩니다.
switch (조건 값) {

    case 값1:

        조건 값이 값1일 때 실행하고자 하는 명령문;

        break;

    case 값2:

        조건 값이 값2일 때 실행하고자 하는 명령문;

        break;

		    ...

    default:

        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;

        break;

}

 

🤔 레이블(라벨)이란?

  • 서점에서 종류에 따른 책을 분류해 위치를 표시해 두었던 것 같이, 조건을 분류한 키워드입니다.
  • 키워드 case와 default가 해당합니다.
  • 모든 case에 해당한 조건의 값이 없다면 마지막으로 default 라벨로 이동하여 코드가 실행됩니다.

 

  • 다음의 예를 통해 switch문을 살펴보겠습니다.

💻 예시 코드

class switchBreak(n){
	public static void main(String[] args){
		switch (ch) {
		case 'a':
			System.out.println("해당 문자는 'A'입니다.");
        	break;
            
   	        case 'e':
   	               System.out.println("해당 문자는 'E'입니다.");
        	break;

   	        case 'i':
           	       System.out.println("해당 문자는 'I'입니다.");
        	break;

 	        case 'o':
                      System.out.println("해당 문자는 'O'입니다.");
         	 break;

                case 'u':
       		       System.out.println("해당 문자는 'U'입니다.");
       		break;

   		default:
       		        System.out.println("해당 문자는 모음이 아닙니다.");
        	break;
	}
}

 

📸 출력 결과

해당 문자는 'I'입니다.

 

📒 Reference (참고 자료)


1. 윤성우의 열혈 자바

2. TCP 스쿨 코딩교육 티씨피스쿨

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

profile

제이제이

@아사비치즈스틱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!