chap_13 Quiz 코드 질문드립니다.
390
작성한 질문수 1
선생님 코드와 내용적으로는 다른 부분이 없는 것같은데 작동이 안합니다.
선생님 코드를 복붙하여 폴더 위치만 수정하면 제대로 작동합니다.
어떤 부분을 잘못 작성하여서 작동 안하는 걸까요??
import java.io.*;
import java.util.Scanner;
public class _Quiz_13 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try (BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\user\\Desktop\\Javaworkspace\\saying.txt"))) {
String quiz;
String answer;
String input;
while (true) {
quiz = br.readLine();
answer = br.readLine();
if(quiz == null || answer == null)
break;
}
System.out.println("(문제)" + quiz);
System.out.print("정답 입력 =>");
input = sc.next();
if(input.equals(answer)) {
System.out.println("정답입니다!");
} else {
System.out.println("틀렸습니다. 정답은" + answer + "입니다.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
답변 1
0
안녕하세요?
아래는 강의에서 제공되는 코드입니다.
if (quiz == null || answer == null) {
break;
}아래는 질문자분께서 작성하신 코드입니다.
if(quiz == null || answer == null)
break;중괄호의 있고 없음의 차이인데요. 사실 이렇게만 놓고 보면 if 의 동작은 동일하게 처리됩니다. 다만 위아래를 조금 더 볼게요.
아래는 강의에서 제공되는 코드입니다.
while (true) {
quiz = br.readLine();
answer = br.readLine();
if (quiz == null || answer == null) {
break;
}
System.out.println("(문제) " + quiz);
...아래는 질문자분께서 작성하신 코드입니다.
while (true) {
quiz = br.readLine();
answer = br.readLine();
if(quiz == null || answer == null)
break;
} // <--- 이부분
System.out.println("(문제)" + quiz);
...차이가 보이실까요?
if 문 내의 break; 다음 줄에 중괄호 } 를 닫으셨는데 이는 결과적으로 while 반복문의 시작 중괄호 { 와 상응하게 됩니다. 그래서 반복문에서는 그저 quiz 와 answer 를 읽기만 하는 동작이 된 것이죠. 이렇게 작성했을 때의 코드를 들여쓰기를 예쁘게 적으면 이렇습니다.
while (true) {
// 반복문 동작 시작
quiz = br.readLine();
answer = br.readLine();
if(quiz == null || answer == null)
break;
// 반복문 동작 끝
}
// 반복문과 무관한 문장의 시작
System.out.println("(문제)" + quiz);
...퀴즈의 의도와 다른 동작을 하는 코드가 되어버린 것이죠. 그래서 잘못된 } 의 위치를 catch 바로 앞쪽으로 옮겨주시면 해결될 것으로 보입니다.
} else {
System.out.println("틀렸습니다. 정답은" + answer + "입니다.");
}
} // <-- 여기로 옮겨주세요
} catch (Exception e) {
e.printStackTrace();
}수정 후 다시 확인해보세요 😊
감사합니다.
자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?
1
146
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
119
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
72
1
사고력 키우는 법이 어떤게 있나요?
0
94
2
getter setter
0
103
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
80
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
76
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
115
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
167
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
117
2
응용이 어렵습니다.
0
206
2
IntelliJ가 보이지 않습니다.
0
187
3
JDK 버전 문의
0
130
2
BlackBox 파일 내에서 메소드 정의
0
136
1
동기화
0
123
2
Iterator 문의
0
105
1
코드 순서 문의
0
143
1
클래스 메소드
0
150
2
Quiz_05 관련 질문드립니다 !
0
118
2
다운로드가 안됩니다
0
165
2
다형성
0
120
2
HashMap
0
80
2





