JAVA

Java - If 문의 사용

bysnow 2021. 3. 29. 22:39
728x90
반응형
SMALL

제어문의 종류에는 조건문과 반복문이 있다. 조건문에는 if문과 switch문이 있고 반복문에는 for문, while문, do-while문이 있다. 제어문 블록이 실행 완료되었을 때 다시 제어문 처음으로 돌아갈지, 아니면 제어문 블록을 빠져나와 정상 흐름으로 다시 돌아올지는 어떤 제어문을 사용하는지에 달려있다. 이것을 루핑(looping)이라고 한다. 제어문 블록 내부에는 또 다른 제어문을 사용할 수 있다. if문 내부에 for문을 가질 수 있고, while문도 가질 수 있다. 이를 통해 개발자가 원하는 매우 복잡한 흐름 제어도 가능하다.

 

If문

 

if문은 조건식의 결과에 따라 블록의 실행 여부가 결정된다.

if(조건식){
	(조건식이 참인 경우 실행)	
}

조건식이 거짓인 경우 블럭 안의 내용을 건너뜀

다음은 if문의 예제 코드이다 

public class IfExample{
	public static void main(String[] args){
    	int score = 93;
        
        if(score>=90){
        	System.out.println("점수가 90보다 큽니다.");
            System.out.println("등급은 A입니다.");
        }
        
        if(score<90)
        	System.out.println("점수가 90보다 작습니다.");
            System.out.println("등급은 B입니다.");
        
	}
}
더보기

출력결과> 

점수가 90보다 큽니다.

등급은 A입니다.

등급은 B입니다.

 

두번째 if문의 블록이 올바르게 작성되지 않았기 때문에 원하는 것과는 다른 결과가 출력되었다. 따라서 제어문을 사용할 때는 반드시 블록에 유의하여야 한다. 

 

 

if-else문

if문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택한다. if문의 조건식이 참이면 if문의 블록이 실행되고, 조건식이 false면 else의 블록이 실행된다. 조건식의 결과에 따라 이 두 개의 블록 중 한 블록의 내용만 실행하고 전체 if문을 벗어나게 된다. 위의 예제를 if-else 문을 사용하여 간단히 처리하는 코드이다.

public class IfExample{
	public static void main(String[] args){
    	int score = 85;
        
        if(score>=90){
        	System.out.println("점수가 90보다 큽니다.");
          	System.out.println("등급은 A입니다.");
        }
        else{
        	System.out.println("점수가 90보다 작습니다.");
           	System.out.println("등급은 B입니다.");
        
        }
        
}
더보기
score가 90보다 작기 때문에 if문의 블록은 건너뛰고 else문의 블록을 실행한다.
결과는 따라서 "점수가 90보다 작습니다. 등급은 B입니다." 이다.

 

if-else-if-else 문

 

조건문이 여러 개인 if문도 있다. 처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록을 선택할 수 있는데, if 블록의 끝에 else if문을 붙이면 된다. else if문의 수는 제한이 없으며 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어나게 된다. else if 블록의 마지막에는 else 블록을 추가할 수 있는데, 모든 조건식이 false일 경우 else 블록을 실행하고 if문을 벗어나게 된다. 다음은 여러 조건식이 사용된 예제이다.

public class IfExample{
	public static void main(String[] args){
    	int score = 85;
        
        if(score>=90){
        	System.out.println("점수가 90~100 입니다.");
          	System.out.println("등급은 A입니다.");
        }else if(score>=80){ 
        	System.out.println("점수가 80~89 입니다.");
           	System.out.println("등급은 B입니다.");
        }else if(score>=70){
        	System.out.println("점수가 70~79 입니다.");
           	System.out.println("등급은 C입니다.");
        }else{
        	System.out.println("점수가 70 미만입니다.");
           	System.out.println("등급은 D입니다.");
        }
     }
}

 

 

 

*if문을 활용하여 임의의 수 출력

 

주사위를 굴려서 나올 수 있는 1~6 사이의 수 중에서 하나의 수를 무작위로 출력하는 프로그램을 작성한다. 임의의 정수는 Math.random()메소드를 활용할 수 있는데, 이 메소드는 0.0과 1.0사이에 속하는 double 타입의 난수 하나를 리턴한다. 0.0은 범위에 포함되지만 1.0은 포함되지 않는다.

//주사위의 번호를 뽑는 예제


public class IfExample{
	public static void main(String[] args){
    	int num = (int)(Math.random()*6)+1 // 주사위 번호 하나 뽑기
        
        if(num==1){
        	System.out.println("1번이 나왔습니다");
        }
        else if(num==2){
        	System.out.println("2번이 나왔습니다");
        }
        else if(num==3){
        	System.out.println("3번이 나왔습니다");
        }
        else if(num==4){
        	System.out.println("4번이 나왔습니다");
        }
        else if(num==5){
        	System.out.println("5번이 나왔습니다");
        }
        else{
        	System.out.println("6번이 나왔습니다");
        }
     }
}

 

 

 

중첩 if문

if문 블록 내부에 또 다른 if문을 사용할 수 있다. 이것을 중첩 if문이라 부르는데, 중첩의 단계는 제한이 없기 때문에 실행 흐름을 잘 판단하여 작성하면 된다. 다음은 중첩 if문의 예제이다.

 

public class IfNestedExample{
	public static void main(String[] args){
    	int score = (int)(Math.random()*20)+81; //81점 이상 100점 미만의 점수를 무작위로 생성
        System.out.println("점수: "+score);
        
        String grade;
        
        if(score>=90){
        	if(score>=95){
            	grade = "A+";
            }
        	else{
            	grade = "A";
            }
        }else{
       		if(score>=85){
            	grade = "B+";
            }else{
            	grade = "B";
            }
        }
        System.out.println("학점: "+grade);
     }
}
728x90
반응형
LIST

'JAVA' 카테고리의 다른 글

파일 입출력 연습  (0) 2021.05.06
상속-기본예제  (0) 2021.03.29
클래스와 메소드 예제 1  (0) 2021.03.18
DTO, Static, Singleton 그리고 접근 제한자  (0) 2021.03.17
자바로 숫자야구(Bulls and Cows)게임 만들기  (0) 2021.03.17