对于我的编程课程,我有以下任务:
在此作业中,您将编写一个可以为宠物建模的程序 商店。该计划将有一个宠物类来模拟个人宠物和 Assignment5类将包含main并充当宠物商店。 用户可以查看宠物,让它们一年一岁, 添加新宠物,并采用任何宠物。
我已经完成了Pet课程,但是在分配这个特定步骤时遇到了困难:
创建一个私有静态String方法,打印出主菜单 该计划。然后它接受来自用户的String并返回 他们的选择。列出的命令如下。一个。列出宠物 商店。湾养宠物。 C。添加一个新宠物。 d。采用宠物。即 放弃。一世。您的方法必须验证用户输入的有效输入 在返回输入之前。
private static String mainMenu(){
return "\n" + "A. List the pets in the store." +
"\n" + "B. Age up the pets" +
"\n" + "C. Add a new pet" +
"\n" + "D. Adopt a pet" +
"\n" + "E. Quit";
}
问题在于我找不到方法来打印菜单并接受和验证用户输入。你能帮我把下面的代码加入我的私有方法吗?
// Ask for letter
System.out.println("Type the letter to make your selection." + mainMenu());
char letter = Character.toUpperCase((scan.next().charAt(0)));
// Check if letter is valid. If not, ask the user to input another letter.
while (!(letter >= 'A' && letter <= 'E')){
System.out.println("That is not one of the options. Input another letter.");
letter = Character.toUpperCase((scan.next().charAt(0)));
}
答案 0 :(得分:3)
我不确定您的扫描仪现在在哪里宣布,但您需要以下内容
private static String mainMenu(Scanner scan){
String menu = "\n" + "A. List the pets in the store." +
"\n" + "B. Age up the pets" +
"\n" + "C. Add a new pet" +
"\n" + "D. Adopt a pet" +
"\n" + "E. Quit";
System.out.println("Type the letter to make your selection." + menu);
char letter = Character.toUpperCase((scan.next().charAt(0)));
// Check if letter is valid. If not, ask the user to input another letter.
while (!(letter >= 'A' && letter <= 'E')){
System.out.println("That is not one of the options. Input another letter.");
letter = Character.toUpperCase((scan.next().charAt(0)));
}
return letter + "";
}
我正在使用return letter + "";
,因为letter是一个char,你的函数返回一个字符串,所以转换它的简单方法是连接空引号
看起来您已经声明了扫描仪,在这种情况下,您可以将其作为参数传递给我,或者您可以为扫描仪提供一个实例变量,最终该部分取决于您如何拥有其余部分您的班级结构
答案 1 :(得分:0)
重点是,在您的实现中,您将在第一行返回菜单,因此该方法不具备其他行为,我已使用您的大部分代码为此示例创建了一个类,希望你能使用它,我还将有效的输入检查移动到一个单独的方法作为某种良好的做法:)
htmleditor.setHtmlText("<img src=' " + file.toURI() + "'/>");