【发布时间】:2017-05-16 01:30:58
【问题描述】:
所以我目前正在做一个项目,这一步要求我编写一个要求输入数字的程序,当输入“-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);
}
}
【问题讨论】:
-
快速但有点糟糕的解决方案是...
int sum = 1一开始。您可以在增加总和之前添加一个 if 语句。 -
在加到总和之前,我最终使用了带有中断的 if 语句。
标签: java