我正在尝试做这个问题:
设计一个程序,读取以 -9999 结尾的数字列表并打印出输入的总和。
我正在修改程序,以便仅对 1
和 100
之间的值进行求和,正如您所看到的,我尝试实现 if
声明。但是,一切都没有改变,这部分让我感到困惑。我已经坚持了很长时间了,代码如下:
import java.util.Scanner;
public class Summing {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Number, Sum = 0;
System.out.println("Enter a list of whole numbers, finished by -9999");
Number = sc.nextInt();
if (Number > 0 || Number < 100);
while (Number != -9999) {
Sum = Sum + Number;
Number = sc.nextInt();
}
System.out.println("Sum is " + Sum);
}
}
最佳答案
移动if
循环内的语句。现在if
语句在进入循环之前仅执行一次(并且它什么也不做,这要归功于紧随条件之后的;
)。您希望它用于每个值。
另请注意,我更改了 ||
到&&
。否则,例如 101 将匹配,它不在 0 和 100 之间。最后,a = a + b
总是可以更简洁地写为 a += b
.
while (Number != -9999) {
if (Number > 0 && Number < 100) {
Sum += Number;
}
Number = sc.nextInt();
}
作为另一种风格上的改变(这几乎是通用约定),您应该考虑将变量更改为小写名称。
关于java - 使用带有 while 循环的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786933/