[英]Is there a way for me to re-enter a wrong input?
我正在制作一個基本的計算器,在其中進行加法,乘法等。它首先檢查它的運算類型,例如1是加法,2是乘法,依此類推。 如果它檢測到操作類型輸入無效,則僅在控制台中告訴我一個錯誤。 有什么方法可以用來檢測該方法,然后重新輸入?
public void printCheck() throws ArithmeticException{
if (op == 2) {
System.out.println("You have chosen addition");
}
else if (op == 3) {
System.out.println("You have chosen subtraction");
}
else if (op == 4) {
System.out.println("You have chosen multiplication");
}
else if (op == 5) {
System.out.println("You have chosen division");
}
else {
throw new ArithmeticException("Entered an invalid operation");
}
try {
a.op(0);
}
catch(ArithmeticException e){
System.out.println("You have entered an invalid operation");
}
您可以重復輸入操作碼,直到輸入有效為止。
我不建議在這里使用異常,因為這是用戶輸入無效輸入的常見情況。 相反,您應該創建一個簡單的isValidOperationCode
方法來檢查輸入。 為了提高可讀性,我刪除了全局變量op
並將其轉換為局部變量,該局部變量作為參數傳遞給需要它的方法。
例:
int op;
do {
op = askUserForOperation();
printCheckOperation(op);
} while (!isValidOperationCode(op));
使用修改后的printCheckOperation
方法
...
} else if (op == 5) {
System.out.println("You have chosen division");
} else {
System.out.println("Entered an invalid operation");
}
和新方法
private boolean isValidOperationCode(int op) {
return 2 <= op && op <= 5;
}
對不起,我無法詳細說明,因為我正在使用手機回答這個問題。 我希望這個答案會有所幫助。
public void printCheck(){
while(true){
if(op<2 || op>5){
enterNewOp();
}
else {
switch(op) {
case 2:
System.out.println("You have select addition");
case 3:
System...
case 4:
......
}
break;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.