• [백준] 10952 자바(JAVA) : A+B - 5

    2021. 1. 13.

    by. 꼬마봄이

    2021 새해의 다짐이었던 깃허브 1일 1커밋 챌린지를 위한

    1/13일 알고리즘 풀이 내용!

     

     


     

     

     

    오늘 풀어본 문제는

    백준 알고리즘 10952번(while문) 문제

     

     

     

     

     

    결과는 A+B가 계속 찍히되,

    입력받는 값이 0, 0이 되면 루프가 종료되어야한다.

     

     

    다음은 내가 제출한 답안이다.

    제출 답안(정답처리)
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		
    		while (true) {
            
    			int a = sc.nextInt();
    			int b = sc.nextInt();
    			
    			if ( a == 0 && b == 0) {
    				break;
    			}
    			
    			int sum = a + b;
    			System.out.println(sum);
    		}
    	}
    }

     

     

    BufferedRead보다 Scanner가 익숙해서 Scanner를 사용했다.

     

    한 번 틀렸기 때문에 밑에 while문에 관한 내용을 좀 더 정리하겠다.

     

     


     

    while문(반복문)의 기본 신택스
    while(조건문){
    실행문;
    (후위연산자;)     ->무한루프가 아닐 경우 조건문을 맞춰주기 위해 i++ 같은 후위연산자를 쓰는 경우가 많다.
    }

     

    while로 무한루프를 만들 경우,

    조건문에 true를 적어주면 된다.

     

    ※단, 무한루프를 끊기 위한 조건이 따로 또 필요하다!※

    (경우에 따라서 무한루프가 안끝나서 시스템이 다운되기도 한다.)

     

     

    이번 문제의 경우도 무한루프(true)를 쓰고

    무한루프를 끝낼 조건을 달아줘야 한다.

    (처음에 무한루프를 안쓰고 했는데 틀린거보니,,

    제출자 의도가 무한루프인 것 같다.)

     

     


     

     

     

    ▶   문제 해결 방법

    1. while 조건문 안에 true를 써서 무한루프를 만들어준다.
    2. 무한루프를 끝내기 위해 while안에 if문을 작성한다.
    3. if문 안에 break를 기술한다. (break에 걸려서 루프 종료)
    4. if문의 조건은 a == 0 && b == 0 !!
    5. 조건을 만족하면 while의 무한루프를 빠져나와 실행이 종료된다.

     

    댓글