gpt4 book ai didi

java - 如何打印循环中遇到的最大数字?

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

我提示用户输入一系列数字,并希望跟踪输入的最大数字并在最后打印出来。示例:

请输入一个数字(输入-1退出):10

输入下一个数字(-1 退出):7

输入您的下一个数字(-1 退出):15

输入您的下一个数字(-1 退出):11

输入您的下一个数字(-1 退出):-1

输入的最大数字是 15

如何打印这个最大的数字?这是我尝试过的:

int a;

while(true){
System.out.print("Please enter a number (enter -1 to quit):");
a = user.nextInt();
if (a==-1)
{
System.out.println("The largest number is the "+ );
break;
}
}

最佳答案

您应该在循环外部存储一个变量,以便在需要时更改。

通常,您会将此数字设置为等于第一个值,但对于这种情况,您可以将其设置为 -1,因为这不会改变。试试这个:

int maxNumber = -1;
while(true){
System.out.print("Please enter a number (enter -1 to quit):");
a = user.nextInt();
if(a != -1 && a > maxNumber){
maxNumber = a;
else if(a == -1){
// You can do a check here to be sure they even entered a number.
if(maxNumber == -1){
System.out.println("No number was input.");
} else{
System.out.println("The max number was " + maxNumber);
}
}
}

编辑进一步解释

这将检查用户输入的数字是否大于尚未输入的任何数字。如果是,它会将值更改为该数字。示例:如果我输入 2,然后输入 3,则 maxNumber 将变为 3。如果我输入 0,则 maxNumber 将保持为 3。如果我在任何时候输入 -1,它就会中断,因为您已经设置了。

编辑2

至于我所说的“你会将这个数字设置为等于第一个值”时的意思,让我解释一下。

用户可以输入除-1 之外的任何值。那么,如何设置初始最大值呢?如果我说 maxNumber = 0 并且您只输入负数,那么完成后我将打印 0 作为最大数字。话虽这么说,我上面所做的仍然不是万无一失的。如果用户输入的值仅小于 -1,我仍然会打印不正确的最大值。因此,最佳实践是获取第一个输入值,并将其设置为最大值,并在遇到新值时更改它。它将把代码更改为如下所示:

int maxNumber = -1; // Just a junk value to start.
boolean firstNumber = true;
while(true){
System.out.print("Please enter a number (enter -1 to quit): ");
a = user.nextInt();
if(a == -1 && firstNumber){ // If the user enters -1 right away.
System.out.println("No number was input.");
} else if(a == -1 && !firstNumber){ // If they've entered -1 after inputting a valid number
System.out.println("The max number was " + maxNumber);
} else{ // They've entered a valid number.
if(firstNumber){ // If this is the first number, we set the max initially, and change this flag to false now.
maxNumber = a;
firstNumber = false;
} else{ // Not first number, so only check if the input is larger.
if(a > maxNumber){
maxNumber = a;
}
}
}
}

关于java - 如何打印循环中遇到的最大数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26848125/

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