所以澄清一下,當程式要求用戶輸入數字 1 時:如果用戶要輸入一個字母,我需要程式告訴用戶輸入不匹配,然后再次要求用戶輸入數字 1。這需要僅使用一個 for 回圈來實作,并且不能有影響總和或平均值的負數。這是我到目前為止所擁有的:
import java.util.*;
import java.text.*;
class fivePositiveNumbers{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
int userNumber;
int sum = 0;
System.out.println("This program will give the sum and average of 5 positive integers,");
for(int i = 1; i <= 5; i ){
System.out.println("Enter number " i ": ");
try{
userNumber = keyboard.nextInt();
sum = sum userNumber;
if(userNumber <= 0){
throw new Exception("The integer must be positive.");
}
} catch(InputMismatchException e){
System.out.println("This data type is incorrect.");
keyboard.nextLine();
} catch(Exception e){
System.out.println(e.getMessage());
keyboard.nextLine();
}
}
System.out.println("The sum is " sum " and the average of your 5 numbers is " sum / 5 ".");
}
}
uj5u.com熱心網友回復:
僅當提供有效輸入時,才使用將增加回圈計數的回圈while。for無論輸入的有效性如何,您的解決方案都會自動增加回圈計數器。
int i = 1;
while (i <= 5) {
System.out.println("Enter number " i ": ");
try{
userNumber = keyboard.nextInt();
if(userNumber <= 0){
throw new Exception("The integer must be positive.");
}
sum = sum userNumber; // this belongs after the negative check
i ; // increment the count after all validations are successfully completed
} catch(InputMismatchException e){
System.out.println("This data type is incorrect.");
keyboard.nextLine();
} catch(Exception e){
System.out.println(e.getMessage());
keyboard.nextLine();
}
}
}
如果您選擇使用for回圈,請從回圈宣告中洗掉計數器增量
for (int i = 1; i <= 5;) {
// your logic and exception handling here
i ; // as in the while, increment only after all validations are successfully completed
}
還有一點......如果數字為負,我認為沒有必要拋出例外。我認為最好簡單地執行 acontinue以避免增加回圈計數器。這是這樣做的結果:
This program will give the sum and average of 5 positive integers,
Enter number 1:
-5
The integer must be positive.
Enter number 1:
-2
The integer must be positive.
Enter number 1:
-3
The integer must be positive.
Enter number 1:
-4
The integer must be positive.
Enter number 1:
-5
The integer must be positive.
Enter number 1:
1
Enter number 2:
2
Enter number 3:
3
Enter number 4:
5
Enter number 5:
4
The sum is 15 and the average of your 5 numbers is 3.
如您所見,我輸入了幾個負數,程式繼續運行,回圈計數器沒有增加。完整的解決方案continue:
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int userNumber;
int sum = 0;
System.out.println("This program will give the sum and average of 5 positive integers,");
for(int i = 1; i <= 5; ){
System.out.println("Enter number " i ": ");
try{
userNumber = keyboard.nextInt();
if(userNumber <= 0){
System.err.println("The integer must be positive.");
continue;
}
sum = sum userNumber;
i ;
} catch(InputMismatchException e){
System.out.println("This data type is incorrect.");
keyboard.nextLine();
} catch(Exception e){
System.out.println(e.getMessage());
keyboard.nextLine();
}
}
System.out.println("The sum is " sum " and the average of your 5 numbers is " sum / 5 ".");
}
uj5u.com熱心網友回復:
class fivePositiveNumbers{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
int userNumber;
int sum = 0;
System.out.println("This program will give the sum and average of 5 positive integers,");
int ctr = 0;
for(;;){
System.out.println("Enter number " (ctr 1) ": ");
try{
userNumber = keyboard.nextInt();
if(userNumber <= 0){
throw new Exception("The integer must be positive.");
}
sum = sum userNumber;
ctr ;
} catch(InputMismatchException e){
System.out.println("This data type is incorrect.");
keyboard.nextLine();
} catch(Exception e){
System.out.println(e.getMessage());
keyboard.nextLine();
}
if (ctr == 5) break;
}
System.out.println("The sum is " sum " and the average of your 5 numbers is " sum / 5 ".");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/445234.html
標籤:爪哇
上一篇:如何使用CSS翻轉svg影像
下一篇:androidx.preference.SwitchPreferenceCompat無法轉換為androidx.preference.PreferenceGroup
