因此,我正在处理一个项目,这一步要求我编写一个要求输入数字的程序,当输入“-1”时,它将计算除-1之外的所有输入数字的总和。我只是通过在循环后添加+1来解决这个问题,但我确定有另一种“正确”的方式来做这件事,我想学习如何。如何正确计算总和而不使用sum ++;?
任何帮助表示赞赏。 (注意:我一直在学习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);
}
}
快速,但稍微糟糕的解决方案是...'int sum = 1'在开始。您可以在增加总和之前添加if语句。 – byxor
我最终在添加总和之前使用了带有中断的if语句。 –