Java 如果不使用sum++;;?

Java 如果不使用sum++;;?,java,Java,因此,我目前正在进行一个项目,这一步要求我编写一个程序,要求输入数字,当输入“-1”时,它将计算除-1之外输入的所有数字的总和。我只是通过在循环后添加+1来解决这个问题,但我确信还有另一种“正确”的方法,我想学习如何做 感谢您的帮助。(注意:我只学了一周左右的Java,所以请注意) 编辑:我的程序现在完成了。我使用了在while循环中添加中断的解决方案,在添加了我想要的其他特性之后,这就是最终产品:(如果有人有关于如何改进我的代码或使其更高效的提示,请评论!) 您可以在输入-1后立即终止循环,更

因此,我目前正在进行一个项目,这一步要求我编写一个程序,要求输入数字,当输入“-1”时,它将计算除-1之外输入的所有数字的总和。我只是通过在循环后添加+1来解决这个问题,但我确信还有另一种“正确”的方法,我想学习如何做

感谢您的帮助。(注意:我只学了一周左右的Java,所以请注意)

编辑:我的程序现在完成了。我使用了在while循环中添加中断的解决方案,在添加了我想要的其他特性之后,这就是最终产品:(如果有人有关于如何改进我的代码或使其更高效的提示,请评论!)


您可以在输入
-1
后立即终止循环,更改

while (numbertyped != -1) {
    numbertyped = Integer.parseInt(reader.nextLine());
差不多

while ((numbertyped = Integer.parseInt(reader.nextLine())) != -1) {
    // ...
如果将
-1
分配给
数字类型
,则不会输入循环体

根据您的编辑,我建议您可以缩短
sum=sum+numbertyped至<代码>总和+=数字类型
并且您可以通过求和
偶数计数器
奇数计数器
来计算
有多少个
。像

System.out.println("Type numbers: ");
while (true) {
    numbertyped = Integer.parseInt(reader.nextLine());
    if (numbertyped == -1) {
        break;
    }
    if (numbertyped % 2 == 0) {
        evencounter++;
    } else {
        oddcounter++;
    }
    sum += numbertyped;
}
int howmany = evencounter + oddcounter;
double average = (double) sum / howmany;

在类似的情况下,类似C语言的用户通常不喜欢使用“退出循环”(
break
)。你会想要这样的东西:

    while (true)
    {

        numbertyped = Integer.parseInt(reader.nextLine());

        if(numbertyped == -1)
        {
            break;
        }

        sum = sum + numbertyped;
    }
作为旁注,“永久循环”可以用
for(;;)
编写,有人说这比
while(true)
更好。然而,大多数人认为
while(true)
更容易阅读。就我个人而言,我对(;)使用
。无论哪种方式,两者都得到了适当的优化,因此在运行时不会有任何差异

关于(;;)
参考:

我认为在这种情况下,您可以颠倒while循环中语句的顺序

        int numbertyped = 0;
        int sum = 0;

        System.out.println("Type numbers: ");

        while (numbertyped != -1) {

            sum = sum + numbertyped;

            numbertyped = Integer.parseInt(reader.nextLine());

        }

第一次通过循环时,numberTyped是0,这是完美的-它不会退出循环,并且实际上不会向总和添加任何内容。在这之后,它将不会改变总和,直到您检查它是否为-1。

很快,但稍差的解决方案是<开始时,代码>整数和=1
。你可以在增加总和之前添加一个if语句。我最后在添加总和之前使用了一个带中断的if语句。是的!伟大的为什么不在
while()
语句中编写整个程序,以防万一。。。好主意,我还没想到呢!
    while (true)
    {

        numbertyped = Integer.parseInt(reader.nextLine());

        if(numbertyped == -1)
        {
            break;
        }

        sum = sum + numbertyped;
    }
        int numbertyped = 0;
        int sum = 0;

        System.out.println("Type numbers: ");

        while (numbertyped != -1) {

            sum = sum + numbertyped;

            numbertyped = Integer.parseInt(reader.nextLine());

        }