gpt4 book ai didi

Java 需要来自两个单独输入的哨兵值

转载 作者:行者123 更新时间:2023-12-01 22:47:37 25 4
gpt4 key购买 nike

我刚刚遇到了哨兵控制迭代,并且遇到了一些困难。我必须编写一个程序来获取用户使用的里程和加仑数,计算总英里数。我试图使用 -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);
}

}
}

最佳答案

您需要检查用户是否在 while 循环中输入 -1。如果确实如此,请使用 break 退出循环,然后终止程序。

mpg 仍然在循环内打印,但仅在进行检查之后打印。这可确保用户提供有效的输入。

我决定将循环条件设置为true,因为如果英里加仑为-,则循环应该中断1.

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

int miles = 1;
int gallons = 1;
int totalMiles = 0;
int totalGallons = 0;
float mpg = 0;

while (true) {
System.out.println("Enter miles or -1 to exit");
miles = input.nextInt();
if (miles == -1) break;

System.out.println("Enter gallons or -1 to exit");
gallons = input.nextInt();
if (gallons == -1) break;

totalMiles = totalMiles + miles;
totalGallons = totalGallons + gallons;
mpg = (float) totalMiles / totalGallons;

System.out.println(mpg);
}
input.close();
System.out.print("Terminate");
}

关于Java 需要来自两个单独输入的哨兵值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58467959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com