gpt4 book ai didi

java - 如何在不使用 sum++; 的情况下正确计算总和?

转载 作者:行者123 更新时间:2023-12-01 06:34:31 24 4
gpt4 key购买 nike

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

感谢任何帮助。 (注:我只学习了大约一周的 Java,所以请 ELI5)

public static void main(String[] args) {
// program in this project exercises 36.1-36.5
// actually this is just one program that is split in many parts

Scanner reader = new Scanner(System.in);

int numbertyped = 0;
int sum = 0;

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

while (numbertyped != -1) {

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

sum = sum + numbertyped;

}
sum++;
System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);

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

    import java.util.Scanner;

public class LoopsEndingRemembering {

public static void main(String[] args) {
// program in this project exercises 36.1-3


// actually this is just one program that is split in many parts

Scanner reader = new Scanner(System.in);

int numbertyped = 0;
int sum = 0;
int howmany = 0;
int evencounter = 0;
int oddcounter = 0;

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

while (true) {

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

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

if (numbertyped % 2 == 0)

{
evencounter++;
}

else

{
oddcounter++;
}

sum = sum + numbertyped;
howmany++;

}

double average = (double) sum / howmany;

System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);
System.out.println("How many numbers: " + howmany);
System.out.println("Average: " + average);
System.out.println("Even numbers: " + evencounter);
System.out.println("Odd numbers: " + oddcounter);

}
}

最佳答案

一旦输入-1,您就可以终止循环,更改

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

类似于

while ((numbertyped = Integer.parseInt(reader.nextLine())) != -1) {
// ...

-1被赋值给numbertyped时,不会进入循环体。

根据您的编辑,我建议您可以将 sum = sum + numbertyped; 缩短为 sum += numbertyped; 并且您可以计算 howmany 通过将 evencounteroddcounter 相加。就像,

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;

关于java - 如何在不使用 sum++; 的情况下正确计算总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com