[英]If a user inputs an invalid character how can I get my program to output a message to the user?
如果用戶在程序中輸入了錯誤的字符,例如“ E”或“ A”,如何向用戶輸出消息? 我在程序中所說的那行是用戶必須選擇輸入三個字符P,M或D中的一個。但是,如果用戶輸入了另一個未列出的字符,我希望程序顯示一個消息。
如您所見,如果用戶輸入“ E”,程序將跳至下一步。 但是,我希望通知用戶並再次要求輸入正確的值“ P,M或D” 。
為了做到我想要達到的目標,我相信我需要做一個if語句,所以在這里我已經嘗試了。
if((i = P,M,D) && (i < ?)) {
System.out.println("ERROR, please input only P,M or D.");
}
JAVA代碼
String grade;
int yr2cred[] = new int[18];
char yr2grade[] = new char[18];
for (int i = 1; i <= 18; i++) {
System.out.println("Please enter your grade for unit " + i +" "+(username) + ".");
grade = userinput.next();
yr2grade[i - 1] = grade.charAt(0);
if (yr2grade[i - 1] == 'P' || yr2grade[i - 1] == 'p') {
yr2cred[i - 1] = yr2cred[i - 1] + P;
}
if (yr2grade[i - 1] == 'M' || yr2grade[i - 1] == 'm') {
yr2cred[i - 1] = yr2cred[i - 1] + M;
}
if (yr2grade[i - 1] == 'D' || yr2grade[i - 1] == 'd') {
yr2cred[i - 1] = yr2cred[i - 1] + D;
}
}
可能的代碼在這里。 我們以單位為單位進行迭代,對於每一個單位,我們要求輸入等級值,直到輸入有效的等級值為止。 最后會列出成績列表。
import java.util.Arrays;
import java.util.Scanner;
public class CheckInput {
public static void main(String[] args) {
int unitsCount = 18;
String[] unitGrades = new String[unitsCount];
String grade;
Scanner userInput = new Scanner(System.in);
for (int i = 0; i < unitsCount; i++) {
grade = "";
while ( ! (grade.equalsIgnoreCase("P") || grade.equalsIgnoreCase("M") || grade.equalsIgnoreCase("D") ) ) {
if (!"".equals(grade)){
System.out.println("ERROR, please input only P,M or D.");
}
System.out.print("Please enter your grade for unit " + i + ": ");
grade = userInput.next();
}
unitGrades[i] = grade;
}
System.out.println("Unit grades: "+Arrays.toString(unitGrades));
}
}
您可以在for循環中使用while循環進行此操作:
for (int i = 1; i <= 18; i++) {
while (grade.equals("")) {
System.out.println("Please enter your grade for unit " + i + " " + username + ".");
grade = userinput.next().toLowerCase();
yr2grade[i - 1] = grade.charAt(0);
if (yr2grade[i - 1] == 'p') {
yr2cred[i - 1] = yr2cred[i - 1] + P;
} else if (yr2grade[i - 1] == 'm') {
yr2cred[i - 1] = yr2cred[i - 1] + M;
} else if (yr2grade[i - 1] == 'd') {
yr2cred[i - 1] = yr2cred[i - 1] + D;
} else {
System.err.println("Invalid Grade Supplied! Try Again.\n");
grade = "";
}
}
grade = "";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.