Java(Eclipse)简易石头剪刀布程序:输入r/p/s映射对应英文单词需求
完善你的Java石头剪刀布程序
Got it, let's get your rock-paper-scissors program in shape for Eclipse! Since you already have the Scanner set up in the loopsGamesProject package, here's how to finish the logic with proper input handling for both valid and invalid entries.
基础实现(单次输入)
First, here's a straightforward version that handles the core requirement—mapping r/p/s to their full names, and catching bad inputs:
package loopsGamesProject; import java.util.Scanner; public class RockPaperScissors { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 提示用户输入 System.out.println("Enter 'r' (rock), 'p' (paper), or 's' (scissors):"); String userInput = scanner.nextLine().trim().toLowerCase(); String output; // 将输入映射为完整单词 switch(userInput) { case "r": output = "rock"; break; case "p": output = "paper"; break; case "s": output = "scissors"; break; default: // 处理无效输入 output = "Oops, that's not a valid input! Please use 'r', 'p', or 's'."; } System.out.println(output); scanner.close(); } }
关键细节说明:
trim().toLowerCase(): 让输入不区分大小写(比如R或P都能识别),同时忽略意外输入的空格。switch语句清晰地将每个有效输入映射为对应全名,default分支会捕获所有无效输入并给出友好提示。
进阶实现(循环直到输入有效)
如果想让程序更友好——在用户输入无效时重复提示直到输入正确,可以用do-while循环:
package loopsGamesProject; import java.util.Scanner; public class RockPaperScissors { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String userInput = null; String output = null; do { System.out.println("Enter 'r' (rock), 'p' (paper), or 's' (scissors):"); userInput = scanner.nextLine().trim().toLowerCase(); switch(userInput) { case "r": output = "rock"; break; case "p": output = "paper"; break; case "s": output = "scissors"; break; default: System.out.println("Invalid input—try again!"); userInput = null; // 标记输入无效,继续循环 } } while(userInput == null); System.out.println("You selected: " + output); scanner.close(); } }
这个版本会持续提示用户,直到输入有效的r/p/s,比输入错误就直接结束程序的体验要好很多。
把这段代码放到Eclipse的loopsGamesProject包下,就能正常运行啦!
内容的提问来源于stack exchange,提问作者M.J
相关产品推荐
相关产品推荐

