Java 循环错误-修复循环意味着破坏其他东西,反之亦然
我一直在努力完成这个循环任务。我可以让程序按预期工作,但是,如果用户没有输入任何值,那么它的代价是在最后有额外的文本。如果我编写代码,使未输入值的用户不具有此额外文本(即最大值为0,最大值的计数为0),则循环不起作用。我的代码包括在下面。发生了什么事Java 循环错误-修复循环意味着破坏其他东西,反之亦然,java,loops,Java,Loops,我一直在努力完成这个循环任务。我可以让程序按预期工作,但是,如果用户没有输入任何值,那么它的代价是在最后有额外的文本。如果我编写代码,使未输入值的用户不具有此额外文本(即最大值为0,最大值的计数为0),则循环不起作用。我的代码包括在下面。发生了什么事 //Name: //Date: //File: //Description: Program that allows the user to enter numbers and determine the maximum value as well
//Name:
//Date:
//File:
//Description: Program that allows the user to enter numbers and determine the maximum value as well as count how many times that maximum value is entered.
import java.util.Scanner;
public class lab4b_hmcka
{
public static void main (String [] args)
{
//variables
int num1, num2, max1 = 0, max2 = 0, count = 0, maxCount = 0;
System.out.println(" Find the maximum number");
System.out.println();
System.out.print("Enter an integer <0 ends the input>: ");
Scanner input = new Scanner(System.in);
num1 = input.nextInt();
if (num1 ==0)
{
System.out.println("No numbers are entered except 0");
}
while (num1 != 0)
{
if (maxCount == 0)
{
System.out.print("Enter an integer <0 ends the input>: ");
num2 = input.nextInt();
max1 = Math.max(num1, num2);
maxCount = maxCount + 1;
count = count + 1;
System.out.print("Enter an integer <0 ends the input>: ");
num1 = input.nextInt();
continue;
}
else
{
max2 = Math.max(num1, max1);
if (num1 == max1)
{
maxCount = maxCount + 1;
count = count + 1;
}
else
{
count = count + 1;
}
System.out.print("Enter an integer <0 ends the input>: ");
num1 = input.nextInt();
}
}
if (count == 1)
{
System.out.println("The maximum number is " + max1);
}
else
{
System.out.println("The maximum numberis " + max2);
}
System.out.println("The count for the max number is " + maxCount);
}
}
//名称:
//日期:
//文件:
//描述:允许用户输入数字、确定最大值以及计算输入最大值的次数的程序。
导入java.util.Scanner;
公共类lab4b_hmcka
{
公共静态void main(字符串[]args)
{
//变数
int num1,num2,max1=0,max2=0,count=0,maxCount=0;
System.out.println(“查找最大数量”);
System.out.println();
System.out.print(“输入整数:”);
扫描仪输入=新扫描仪(System.in);
num1=input.nextInt();
如果(num1==0)
{
System.out.println(“除0外,未输入任何数字”);
}
while(num1!=0)
{
如果(maxCount==0)
{
System.out.print(“输入整数:”);
num2=input.nextInt();
max1=数学最大值(num1,num2);
maxCount=maxCount+1;
计数=计数+1;
System.out.print(“输入整数:”);
num1=input.nextInt();
继续;
}
其他的
{
max2=数学最大值(num1,max1);
如果(num1==max1)
{
maxCount=maxCount+1;
计数=计数+1;
}
其他的
{
计数=计数+1;
}
System.out.print(“输入整数:”);
num1=input.nextInt();
}
}
如果(计数=1)
{
System.out.println(“最大数量为”+max1);
}
其他的
{
System.out.println(“最大数量”+max2);
}
System.out.println(“最大数的计数为”+maxCount);
}
}
我不完全确定您想要实现什么以及您试图实现什么(无论是什么),但我假设如果用户想要立即退出(=首先输入0),您只想终止程序。因此,只需添加一个回报:
if (num1 == 0) {
System.out.println("No numbers are entered except 0");
return; // Terminate now.
}
我不完全确定您想要实现什么以及您试图实现什么(无论是什么),但我假设如果用户想要立即退出(=首先输入0),您只想终止程序。因此,只需添加一个回报:
if (num1 == 0) {
System.out.println("No numbers are entered except 0");
return; // Terminate now.
}
在程序末尾的if/else语句中,只需检查count的值是否等于1。在这种情况下,用户最初输入零永远不会是真的,因为我们没有进入计数第一次递增的while循环。在不过度更改代码的情况下,只需执行以下操作:
if(count == 1)
{
int maxVal = Math.max(max1, max2);
System.out.println("The max number is " + maxVal
System.out.println("The count for the max number is " + maxCount
}
之后,您可以简单地删除else,这将为您提供所需的输出
此外,还有许多其他优化可以用更少的代码实现相同的结果,但我将把它留给个人学习体验。祝你好运 在程序末尾的if/else语句中,您只是检查count的值是否等于1。在这种情况下,用户最初输入零永远不会是真的,因为我们没有进入计数第一次递增的while循环。在不过度更改代码的情况下,只需执行以下操作:
if(count == 1)
{
int maxVal = Math.max(max1, max2);
System.out.println("The max number is " + maxVal
System.out.println("The count for the max number is " + maxCount
}
之后,您可以简单地删除else,这将为您提供所需的输出
此外,还有许多其他优化可以用更少的代码实现相同的结果,但我将把它留给个人学习体验。祝你好运 如果我让代码让用户(…)你做了什么改变来实现这一点?没有必要
继续代码>指令。如果我让代码让用户(…)你做了什么改变来实现这一点?没有必要继续代码>说明。是。这就是我想做的。我想用上面的文本终止程序。Manu。这正是我想做的。返回;工作。谢谢,是的。这就是我想做的。我想用上面的文本终止程序。Manu。这正是我想做的。返回;工作。非常感谢。