[英]While loop printing the undesired outcome
我遇到了不受欢迎的 output 代码块 {sum、total、average、even、odd} 的问题。 当我输入 -1 时,不希望它打印这个块,而是说“谢谢。再见。”。 代码运行良好,顺便说一句,我只需要帮助确定该块的放置位置以产生所需的结果。 提前致谢!
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sumOfNumbers = 0;
int loopCounter = 0 ;
int oddValues = 0;
int evenValues = 0;
System.out.println("Give numbers:");
int inputValue = scanner.nextInt();
while (inputValue == -1)
{
System.out.println("Thx! Bye!");
break;
}
while (inputValue!= -1)
{
if (inputValue % 2 == 0)
{
evenValues++;
}
else
{
oddValues++;
}
loopCounter++;
sumOfNumbers += inputValue;
inputValue = scanner.nextInt();
if(inputValue == -1)
{
System.out.println("Thx! Bye!");
break;
}
}
System.out.println("Sum:"+sumOfNumbers);
System.out.println("Total numbers entered: "+loopCounter);
System.out.println("Average:"+sumOfNumbers/(double)loopCounter);
System.out.println("Even:"+evenValues);
System.out.println("Odd:"+oddValues);
}
}
您需要首先从循环中收集基本信息
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int totalNumbersEntered = 0;
int sum = 0;
int input = -1;
do {
input = scanner.nextInt();
// Remove the danlging new line
scanner.nextLine();
if (input != -1) {
totalNumbersEntered += 1;
sum += input;
}
} while (input != -1);
System.out.println("Thx! Bye!");
System.out.println("Sum: " + sum);
System.out.println("totalNumbersEntered: " + totalNumbersEntered);
}
}
因为您没有存储输入值以供以后使用,所以您可以使用循环来计算输入值的总数并同时对它们求和。 一旦用户输入-1
并存在循环,您就可以执行其他计算,例如平均。
你能想到你需要在哪里跟踪偶数/奇数值吗?
有关详细信息,请参阅控制流语句和while 和 do-while 语句
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.