Scanner로는 작성해 보셨나요? 입력을 계속해서 받아야 하는데, 입력을 한 번만 받고 있으니 첫째 줄 이외에는 아예 입력을 받지 않고 루프만 도는 상태가 됩니다.
10952번 - A+B - 5
음.. while 조건에 맞추면 바로 while문 실행되어야 하는거 아닌가요 ?
scanner로 작성하면 1 1 입력시 바로 2가 나오는데
BufferedReader로 작성하면 0 0을 입력해야 전에 작성했던 값들의 합이 주르륵 나오네요 ㅠㅠ?
혹시 제가 코드를 잘못 작성한건가요
--------------------------------------------------------------------------------------------
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
while(a!=0||b!=0) {
System.out.println(a+b);
a = scanner.nextInt();
b = scanner.nextInt();
}
}
--------------------------------------------------------------------------------------------
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st ;
st =new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
while(a!=0&&b!=0) {
bw.write(a+b+"\n");
st =new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
}
br.close();
bw.flush();
bw.close();
}
}
아하..! flush()에 대한 질문이 있습니다. 아까랑 똑같은 코드에서 bw.flush()를 지우고 실행을 했는데 결과가 똑같이 나왔습니다.
public class algoritm_practice {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st ;
st =new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
while(a!=0&&b!=0) {
bw.write(a+b+"\n");
st =new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
}
br.close();
bw.close();
}
}
flush()를 지웠는데도 출력값이 어떻게 화면에 나온건가요 ?
댓글을 작성하려면 로그인해야 합니다.
moho009804 2년 전 1
scanner쓰다가 BufferedReader 연습하고 있습니다 어렵네요 ㅠㅠ
이렇게 작성하면 입력은 되는데 출력이 안되네요 어디가 문제일까요 ?