본문 바로가기
JAVA

JAVA 조건문 | IF문

by 윈투 2022. 4. 6.

조건문


조건문의 종류


①if 문 : 특정 조건이 만족될 때에만 실행하는 문장.
②switch 문 : 조건에 따라서 실행시킬 코드를 구분.

 

이 포스팅에서는 if문을 중심으로 살펴보겠습니다.

자바로 명령을 내리는 기본적인 틀은 우선class를 쓰고 이름을 쓰고 그리고 그 다음 main 메서드를 쓴다.

 

JVM이 프로그램을 처음 시작할 때 main을 찾아서 시작하고 main의 영역이 끝나는}에서 프로그램이 종료된다. 이 영역에서는 한줄한줄 실행이 되는 흐름을 가지고 있는데 조건문은 이 실행의 흐름을 변경시킬 수 있다.

 

if에는 boolean에 들어갈 수 있는 값 즉 true나 false를 구별할 수 있는 값이 온다. 하지만 if의 ()안에 ture나 false를 직접 넣는 경우는 거의 없고 비교연산자나 논리연산자와 같이 활용을 하게 된다.

 

if문은 else 문을 옵션으로 선택해서 false일 때의 상황에 필요한 프로그램을 넣을 수도 있고 여러번 if문을 중복해서 쓸 수도 있다. else 문의 영역 안에 다시 if문을 쓸 수도 있고 else if 문으로 쓸 수도 있다.

if라는 조건문도 자신의 영역{}을 갖는다.


if(/*조건*/){

/*조건이 TRUE일 때 실행할 내용*/
{

 

//if 문
//—형식1

if(조건식)
{
   실행문장;
   …
}
 
//—형식2

if(조건식)
{
    //실행문장;
    …
}
else
{
   //실행문장;
   …
}


//—형식3
if(조건식1)
{
      //실행문장;
      …
}
else if(조건식2)
{
      //실행문장; 
       …
} else {
    //실행문장;
    …
}

 

예제1

package com.model;

public class IfBasic {
        
         public static void main(String[] args){
                 System.out.println( "프로그램 시작." );
                
                 int num1 = 47, num2 = 38;
                
                 // 방법 1
                 if( true){
                         System.out.println( "if문 테스트1");
                        
                }
                 if( false) {
                         System.out.println( "if문 테스트2" );
                                
                }
                
                 if( num1 > num2){
                         System.out.println( "if문 테스트3");
                        
                }
                
                 // 방법 2 else는 옵션이다. 옵션을 붙이면 한 묶음이다. else는 if문을 불만족할 때의 옵션을 넣을 때 사용한다. 
                 if( num1 < num2){
                         System.out.println( "num1이 num2보다 작다." );                         
                } else{
                         System.out.println( "num1이 num2보다 크거나 같다." );        
                }
                
                
                 //if문을 else 안에 중복해서 사용할 수도 있다.
                 if( num1 < num2){
                            System.out.println( "num1이 num2보다 작다" );
                } else{
                         if( num1== num2){          //==가 같다는의미를 나타내는 것에 주의!
                                 System.out.println( "num1과  num2는 같다." );    
                        } else{
                                 System.out.println( "num1이 num2보다 크다" );
                        }
                }
                
                 //위를 편집해서 다음과 같이 if else 형태로 쓸 수 있다.
        if(num1 < num2){
                 System.out.println( "num1이 num2보다 작다" );
                } else if( num1== num2){        
                         System.out.println( "num1과  num2는 같다." );    
                } else{
                         System.out.println( "num1이 num2보다 크다" );
                }
                                
                 System.out.println( "프로그램 종료." );
                
        }

}

 

실행 결과

프로그램 시작.
if문 테스트1
if문 테스트3
num1이 num2보다 크거나 같다.
num1이 num2보다 크다
num1이 num2보다 크다
프로그램 종료.

 

 

 

예제 2

 

package com.model;

public class IEUsage {
        
         public static void main(String[] args){
                 int num = 10;
                
                 if( num > 0) //{  //boolean 타입 값 num이 0보다 크냐?
                        System. out.println( "num은 0보다 크다." ); //{ } 영역 안에서도 명령을 여러개 넣을 수 있다. 단 명령문이 한 줄일 때만 중괄호를 생략할 수 있다. 
                 //}
                
                 if(( num%2)==0)  //2로 나눠서 나머지 값이 2로 나눈 나머지는 0또는 1인 확인한다. 짝수와 홀수에 대한 판단을 2라는 몫으로 한다. 비교연산자 좌측과 우측의 값이 같냐?  산술연산자>비교연산자 하지만 가독성을 높일 수 있도록 괄호라는 구분자 이용해서 처리 
                        System. out.println( "num값은 짝수");
                 else
                        System. out.println( "num값은 홀수");
                
        }

}

실행 결과

num은 0보다 크다.
num값은 짝수

 

 

 

예제 3

 

package com.model;

public class DanglingElse {
         public static void main(String[] args){
                 int num1 = 152, num2=173;
                
                 if( num1> num2)  
                         if( num1 > 100)
                                System. out.println( "num1="+ num1);
                        
                 else//컴파일러는 여백을 무시하기 때문에 괄호가 없을 경우 가장 가까운 if에 매치되어 버린다. 그래서 if의 결과는 false가 되어서 출력되지 않는다.
                         if( num2 > 100) 
                                System. out.println( "num2="+ num2);
                
                        
                System. out.println( "프로그램 종료." );
                
        }

}


//하나의 명령에는 중괄호를 생략할 수 있다고 해서 생략을 하면 다른 결과가 나올 수도 있다.

 

실행 결과

프로그램 종료.

 

 

 

JAVA 조건문 switch 문

조건문의 종류 ①if 문 : 특정 조건이 만족될 때에만 실행하는 문장. ②switch 문 : 조건에 따라서 실행시킬 코드를 구분. 여기서는 두번 째 Switch 문에 대해서 살펴보겠습니다. switch문은 아래와 같

stock-value.tistory.com

 

댓글