N個の整数の平均を計算するプログラムを作成します。プログラムは、Nの値を入力するようユーザーに指示し、その後、すべてのNnumbersを入力する必要があります。ユーザーがNに正の値を入力しなかった場合は、「Nは正の数である必要があります」というメッセージとともに例外をスローして(捕捉する)必要があります。ユーザーがN個の数字を入力しているときに例外がある場合は、エラー・メッセージが表示され、ユーザーは再度番号を入力するよう求められます。ユーザーが整数を入力しない場合、プログラムは値の再入力を要求する必要があります。Javaプログラムで例外を計算平均
は私が正しく例外をスローアム??
import java.util.Scanner;
import java.util.InputMismatchException;
class Playground {
public static void main(String[ ] args) {
int sum = 0, mean;
System.out.println("Please enter number of integers");
Scanner sc1 = new Scanner(System.in);
int counter = sc1.nextInt();
if (counter <= 0) {
throw new InputMismatchException("N must be positive");
}
else {
System.out.println("Please enter "+counter+" numbers");
}
for (int i =0; i< counter; i++) {
int inputnum = sc1.nextInt();
if (inputsum <= 0){
throw new InputMismatchException("Please enter again");
continue;
}
sum = sum+inputnum;
System.out.println();
}
mean = sum/counter;
System.out.println(mean);
}
}
いいえ、正しく実行していません。あなたの質問から: "*投げられるべき(**とキャッチ**)*" - あなたは例外をキャッチしていない。 'throw'の後に' continue'を実行すると、実際に到達できないコードになります。 – Maroun
'System.err.println("をもう一度入力してください);と入力してください。例外についてのチュートリアルを読んでください。 – clemens
入力を再度入力するようにユーザーに依頼しても、forループは依然として有効です。また、数値が正ではないにもかかわらず、あなたはそれを捨てるべきであるのに対し、あなたの合計に加えています。これらは、他の人に言及されている例外処理とは別に、さらに2つの問題です。返信いただきありがとうございます。 – Nishit