Я только что наткнулся на итерацию, контролируемую дозорным, и у меня возникли некоторые трудности. Я должен сделать программу, которая получает пробег и использованные галлоны от пользователя, вычисляет общее количество миль на галлон. Я пытаюсь использовать -1 в качестве контрольного значения для выхода из цикла, когда пользователь закончит, но когда я перехожу к вводу значения, Java не завершает программу. Вместо этого он запрашивает другое значение в галлонах. Как мне заставить его принять дозорное значение из первого ввода?
Пример:
Введите мили или -1 для выхода
-1
Введите галлоны
-1
Прекратить
import java.util.Scanner;
public class Activity3_17 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// processing phase
int miles = 1;
int gallons = 1;
int totalMiles = 0;
int totalGallons = 0;
float mpg = 0;
System.out.println("Enter miles or -1 to exit");
miles = input.nextInt();
System.out.println("Enter gallons");
gallons = input.nextInt();
while (miles != -1) {
System.out.println("Enter miles or -1 to exit");
miles = input.nextInt();
System.out.println("Enter gallons or -1 to exit");
gallons = input.nextInt();
totalMiles = totalMiles + miles;
totalGallons = totalGallons + gallons;
}
if (miles == -1) {
System.out.print("Terminate");
}
else{
mpg = (float) totalMiles / totalGallons;
System.out.println(mpg);
}
}
}
-1
в галлонах, но вы не проверяете значение этой переменной для этого условия выхода. - person Progman   schedule 20.10.2019