1. 문제 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, cnt;
cnt = 0;
for(;;){
a = sc.nextInt(); // 오류
if(cnt == 3){
break;
}
else if(a % 2 == 0){
System.out.println(a / 2);
cnt ++;
}
else{
continue;
}
}
}
}
2. 에러메세지
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:12)
3. 해결 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, cnt;
cnt = 0;
for(;;){
if(cnt == 3){
break;
}
else{
a = sc.nextInt(); // 위치 수정
if(a % 2 == 0){
System.out.println(a / 2);
cnt ++;
}
}
}
}
}
문제 코드에서 cnt가 3일 경우에도 a 값을 한 번 더 받으려고 해서 발생한 오류로 생각 됨.
a를 입력받는 위치를 cnt가 3인 아닌 경우로 수정하여 해결
'Java > 시행착오' 카테고리의 다른 글
[java] do while 문 실험 (0) | 2024.09.13 |
---|