У меня проблема. Предполагается, что код должен содержать 2-значные целые числа, где цифры разные. Если это не целое число, код сообщает вам и просит повторно войти. Если он как целое, но не соответствует условиям, он скажет вам, а затем предложит повторно войти. Все работает, за исключением случаев, когда вы вводите 0 для завершения цикла/программы. Я застрял на этом в течение 2 дней. Какие-либо предложения?диапазон и тип ввода подтверждение
int num = 1;
while (num != 0) {
System.out.print("Enter a 2-digit number. The digits should be different. Zero to stop: ");
while (!in.hasNextInt()) {
System.out.print("Not an integer, try again: ");
in.next();
}
num = in.nextInt();
while (num < 10 || num > 99) {
System.out.println("NOT good for your game!");
System.out.print("Enter a 2-digit number. The digits should be different. Zero to stop: ");
while (!in.hasNextInt()) {
System.out.print("Not an integer, try again: ");
in.next();
}
num = in.nextInt();
}
if (equalDigs(num) == false)
System.out.println("NOT good for you game!");
else
System.out.println("Good for your game! Play!");
}
}
public static boolean equalDigs(int n) {
int d1 = n/10;
int d2 = n % 10;
if (d1 == d2)
return false;
else
return true;
}
Вы должны использовать do-while для этого прецедента. Попытайтесь, это очень упростит проблему. –