Java 循环运行时如何更新整数?
当我们在程序中输入0时,它应该停止运行循环并打印数字的平均值。当我运行程序并最初输入0时,程序退出。如果我先输入一个不为零的整数,然后输入0,程序将继续运行,我无法退出。我认为当用户输入一个新值时,该整数值需要更新,以使程序退出,并且总和正确 循环运行时如何更新整数值?我猜我应该在循环中改变或添加一些东西Java 循环运行时如何更新整数?,java,loops,while-loop,Java,Loops,While Loop,当我们在程序中输入0时,它应该停止运行循环并打印数字的平均值。当我运行程序并最初输入0时,程序退出。如果我先输入一个不为零的整数,然后输入0,程序将继续运行,我无法退出。我认为当用户输入一个新值时,该整数值需要更新,以使程序退出,并且总和正确 循环运行时如何更新整数值?我猜我应该在循环中改变或添加一些东西 import java.util.Scanner; public class Exercise05_01 { public static void main(String[] ar
import java.util.Scanner;
public class Exercise05_01 {
public static void main(String[] args){
float negCount = 0;
float sum = 0;
float posCount = 0;
Scanner input = new Scanner(System.in);
System.out.println("Enter a positive or negative integer. Entering 0 ends program");
int integer = input.nextInt();
while (integer != 0) {
if (integer > 0) {
posCount = +1;
sum = +integer;
}
if (integer < 0) {
negCount = +1;
sum = +integer;
}
float count = negCount + posCount;
if (integer == 0) {
System.out.println("The answer");
}
}
}
}
import java.util.Scanner;
公开课练习05_01{
公共静态void main(字符串[]args){
浮点数=0;
浮点数和=0;
float posCount=0;
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入正整数或负整数,输入0结束程序”);
int integer=input.nextInt();
while(整数!=0){
如果(整数>0){
posCount=+1;
总和=+整数;
}
if(整数<0){
负计数=+1;
总和=+整数;
}
浮点计数=负计数+posCount;
如果(整数==0){
System.out.println(“答案”);
}
}
}
}
我认为您需要在while循环中添加获取输入的行
while (integer != 0) {
integer = input.nextInt();
.
.
.
这样,当循环运行时,每次迭代都会检查输入
我也不得不说这看起来像是一个可疑的家庭作业。。。特别是类名…有两个问题
首先,当你在循环中时,你不会得到任何输入。这可以通过午餐盒之前提供的建议来解决
第二,这不是累积价值:
posCount = +1;
每次为posCount
分配一个正1
您想要增加值
posCount++;
…或显式添加一个
posCount += 1;
正如他在回答中指出的,您需要从循环内部请求用户的输入,否则integer
永远不会更改,也永远不会退出循环;您观察到的行为是程序永远运行
最好的方法是午餐盒的建议:
int integer = input.nextInt();
while(integer != 0){
// Do stuff
integer = input.nextInt();
}
但是,您的代码还有许多其他问题。首先,为什么要使用float
s来存储计数器和求和值?为什么不使用int
s
另一方面,您从未实际增加这些值。正如他在回答中指出的,行posCount=+1
不是增量运算符
在这种情况下,+
操作符是最简单的。这将强制您的有符号值为正,因此+(-1)=1
。虽然这很有用,但这不是你想要发生的事情,也绝对不是你想要在求和时做的事情
相反,您希望执行以下三项操作之一:
posCount = posCount + 1;
posCount += 1;
posCount++;
这些都是等价的陈述。
++
运算符是后缀增量运算符,它将向变量的值添加1,然后返回它(比这稍微复杂一点,但您可以自己读取)。所以不要在求和时使用这种语法;使用另外两个选项中的一个。您需要从循环内部请求输入。另外,那些分配给posCount
、negCount
和sum
的任务并没有达到您认为的效果。也许您应该使用breakeword跳出while循环,我无法编辑此问题来格式化文本。。。。