每當我運行此代碼時,如果我輸入一個字符串作為輸入,我會在第 11 行得到一個錯誤。幫助?我不確定如何運行 else 語句或詢問他們是否放置字符串而不是整數(shù)(選擇變量)。我是新手,非常感謝您的幫助!這是我的代碼:import java.util.Scanner;public class rockPaper { public static void main(String args[]) { System.out.println("Hello world"); int rock = 0; int paper = 1; int scissors = 2; Scanner input = new Scanner(System.in); System.out.println("Rock, Paper, or Scissors(0, 1, or 2)? Enter your integer: "); int choice = input.nextInt(); int aIChoice = (int) (Math.random() * 3); if (choice == rock) { switch (aIChoice) { case 0: System.out.println("AI chose rock."); System.out.println("Rock ties with rock!"); break; case 1: System.out.println("AI chose paper."); System.out.println("Fail. Paper trumps rock."); break; case 2: System.out.println("AI chose scissors."); System.out.println("You win! Rock trumps scissors."); break; default: break; } } else if (choice == paper) { switch (aIChoice) { case 0: System.out.println("AI chose rock."); System.out.println("You win! Paper trumps rock."); break; case 1: System.out.println("AI chose paper."); System.out.println("Paper ties with paper!"); break; case 2: System.out.println("AI chose scissors."); System.out.println("Fail. Scissors trumps paper."); break; default: break; } } } else { System.out.println("Nope!"); } input.close(); }}如上所述,如果我運行代碼并輸入任何字母(字符串),則會收到引用第 11 行的錯誤。我不確定我應(yīng)該做什么,因為顯然正如我提到的那樣,在所有這些中添加一個 else 語句并不能確保如果他們輸入了一個字符串則“不”。
2 回答

牧羊人nacy
TA貢獻1862條經(jīng)驗 獲得超7個贊
不太確定如果用戶提供無效輸入,您期望什么,但我認為,如果輸入不是有效整數(shù),合理的選擇是檢查輸入并向用戶打印錯誤消息。為此,只需在下面添加此代碼,而不是在代碼中添加此行:int choice = input.nextInt();
int choice = -1;
if (input.hasNextInt()) {
choice = input.nextInt();
} else {
System.out.println("Please provide valid integer input: Rock, Paper, or Scissors(0, 1, or 2)?");
}
PS 另外,最好檢查一下您的整數(shù)是否在 [0,2] 范圍內(nèi)。
添加回答
舉報
0/150
提交
取消