私は現在プロジェクトに取り組んでいます。このステップでは数字を求めるプログラムを書くように求められました。 "-1"を入力すると、-1以外のすべての数字の合計が計算されます。私は単にループの後に+1を追加することでこれを修正しましたが、それを実行する別の「適切な」方法があることを確信しています。sum ++を使わずに合計を正しく計算するにはどうすればいいですか?
何か助けていただければ幸いです。 (注:してくださいELI5ので、私は一週間の周りには、Javaを学習してきた)
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);
EDIT:私のプログラムが完了しました。私は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文を使用してしまいました。 –