본문 바로가기
Baekjoon 자바 코드/문자열

[백준] 11718번 그대로 출력하기 코드 (Java 자바)

by 망댕이 2024. 9. 30.
반응형

예제 입력 값을 그대로 똑같이 출력하는 문제이다.

접근 방법)

Scanner의 nextLine()를 이용하면 한 줄씩 입력을 받을 수 있다. 이것을 이용하여 한 줄씩 받고 출력하여 다음 줄에 더 이상 입력값이 없을 때까지 반복해야 한다.

while문을 이용하여 한 줄 입력값을 받고 출력하는 실행문을 만들 수 있다. 하지만 조건문을 어떻게 작성해야 하는가..

Scanner의 인스턴스.hasNext()를 이용하여 다음 입력 값 여부에 따라 true 또는 false 값을 갖게 된다.

아래 예제를 보면서 참고해 보자.

 

▷ 다음 입력 값이 없을 때까지 

Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
    String str = sc.nextLine();
    System.out.println(str);
}

 

입력받은 값 존재하는 경우(true)에만 입력값을 받아와 그대로 출력하는 반복문을 생성한다.

 

또 try-catch 예외처리문을 이용하여 해결할 수 있다.

try-catch문은 예외가 발생하는 경우 코드가 오류가 발생하지 않기 위해 사용하는데, 이것을 역이용하여 더 이상 입력받을 값이 없어 sc.nextLine()에서 예외가 발생하는 순간 더 이상 코드를 마무리하여 푸는 방법이 있다.

 

▷ try-catch

int a = 30;
int b = 0;
int c = 0;

try{
    c = a/b;            // try안에서 예외가 발생여부에 따라 catch 구문 실행 (예외 발생 안나면 c = a/b 실행)
}catch(Exception e){
    c = a;              // (예외 발생이 c = a 실행)
}
System.out.println(c);  // println()실행

 

정답 코드를 확인하여 전체코드를 살펴보자.

정답 코드 1)

import java.util.*;
import java.io.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            System.out.println(str);
        }
        
    }
}

정답 코드 2)

import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    public static void main(String[] args) {
        try{
            Scanner sc= new Scanner(System.in);
            for(int i = 0; i < 100; i ++){
                String str = sc.nextLine();
                if(str!=null){
                    System.out.println(str);
                }
            }
        }catch(Exception e){
            
        }
        
    }
}
반응형