나는 작은 프로그램을 작성하고있다. (학생이지만, 클래스를위한 과제는 아니지만, 이전 과제의 놀이 임). 이전에는 클래스 용으로 do/while
루프를 학습하면서 사용자에게 정수를 입력하라는 프로그램을 작성했습니다. 사용자가 0을 입력하면 루프에서 벗어나서 입력 된 모든 정수의 제곱의 합을 출력합니다.스캐너를 사용할 때 변수 유형을 확인하는 것
타입 정수 : 3
타입 정수 : 0
제곱의 합은 9
내 목표 지금
출력 예 (개행 이격 더블) 그것을 한 걸음 더 나아가는 것입니다. 작성된 것처럼 사용자가 정수가 아닌 다른 값을 입력하면 프로그램이 중단됩니다. 나는 사용자가 충돌하지 않고 다른 형태의 값을 입력 할 수있는 방법을 찾기 위해 노력하고있다. 아래 코드 (임의의 값에서 충돌을 일으키는 프로그램)를 참조 할 때 console.hasNextInt()
메서드를 사용하여 if 문을 변형 해 보았습니다. 그러나 이것에 대한 나의 시도는 do/while
테스트의 number
테스트가 참조되지 않았을 수 있다는 오류를 일으킬 수 있습니다.
아무에게도 조언을 해 줄 수있는 사람이 있습니까? 그것은 인정 될 것이다.
public static void userInterface() {
Scanner console = new Scanner(System.in);
int number;
int numberSquared;
int squaredOutput = 0;
do {
System.out.print("Type an integer (0 to quit): ");
number = console.nextInt();
if (number > 0 || number < 0) {
numberSquared = number * number;
squaredOutput += numberSquared;
}
} while (number != 0);
System.out.println("The sum of the squares is " + squaredOutput);
}
문제는 무엇을 사용합니까? –
int가 아닌 int를 입력하면 프로그램을 끝내시겠습니까? 또는 루프를 무시하고 계속할 것인가? – Cruncher
나의 초기/장황한 문장을 용서하십시오. 이상적으로, 사용자가 char, string, double 등을 입력하면 프로그램이 중단되지 않고 잘못된 응답을 입력했음을 사용자에게 경고하고 다시 시도하도록 요청하는 것이 이상적입니다. – Rivers31334