解释一下public void start() { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("1. 添加宠物"); System.out.println("2. 喂食"); System.out.println("3. 玩耍"); System.out.println("4. 查看宠物信息"); System.out.println("5. 退出"); int choice = scanner.nextInt(); switch (choice) { case 1: addPet(); break; case 2: feedPet(); break; case 3: playWithPet(); break; case 4: showPetInfo(); break; case 5: System.exit(0); break; default: System.out.println("无效的选择,请重新输入"); break; } } }
时间: 2024-02-10 16:33:16 浏览: 75
这是Java宠物领养系统中的一个方法,其目的是启动宠物领养系统并提供用户界面,以便用户进行交互式操作。
首先,该方法使用Scanner类创建了一个接收用户输入的对象,然后使用while循环不断输出选项菜单,等待用户输入选项。在每次循环中,程序都会输出一组选项菜单,用于提示用户可以执行的操作。
接着,该方法使用scanner.nextInt()方法获取用户输入的数字,并使用switch语句根据用户输入的选项执行相应的操作。在switch语句中,每个case对应一个选项,根据用户输入的选项执行相应的方法,如添加宠物、喂食、玩耍、查看宠物信息或退出系统。如果用户输入的选项无效,则输出“无效的选择,请重新输入”信息。
需要注意的是,该方法中的addPet()、feedPet()、playWithPet()和showPetInfo()都是宠物管理器中的方法,用于执行添加宠物、喂食、玩耍和查看宠物信息等操作。在调用这些方法时,需要考虑它们的实现细节和参数传递方式。同时,在while循环中使用System.exit(0)语句可以退出程序。
相关问题
public class Anli1 { public static void main(String[] args) { Scanner n = new Scanner(System.in); System.out.println("输入机票价格:"); double u = n.nextDouble(); Scanner o = new Scanner(System.in); System.out.println("输入月份:"); int m = o.nextInt(); Scanner p = new Scanner(System.in); System.out.println("舱位:"); String j = p.next(); double res = jp(u, m, j); System.out.println("机票价格:" + res); }用户键盘输入类型不对,怎么判断并让用户重新输入
在这个代码中,如果用户输入的类型不对,可以使用try-catch语句来捕获异常,并提示用户重新输入。具体的做法如下:
```java
public static void main(String[] args) {
Scanner n = new Scanner(System.in);
double u = 0;
boolean flag = true;
while (flag) {
try {
System.out.println("输入机票价格:");
u = n.nextDouble();
flag = false;
} catch (InputMismatchException e) {
System.out.println("机票价格输入类型不正确,请重新输入!");
n.nextLine(); // 清空缓存
}
}
Scanner o = new Scanner(System.in);
int m = 0;
flag = true;
while (flag) {
try {
System.out.println("输入月份:");
m = o.nextInt();
flag = false;
} catch (InputMismatchException e) {
System.out.println("月份输入类型不正确,请重新输入!");
o.nextLine(); // 清空缓存
}
}
Scanner p = new Scanner(System.in);
String j = "";
System.out.println("舱位:");
j = p.next();
double res = jp(u, m, j);
System.out.println("机票价格:" + res);
}
```
上面的代码中,我们使用了while循环和flag变量来保证用户重新输入,直到输入类型正确为止。当用户输入类型不正确时,会抛出InputMismatchException异常,我们可以使用catch语句来捕获这个异常,并提示用户重新输入。在重新读取输入之前,需要先清空缓存,否则会出现死循环。使用scanner.nextLine()方法可以清空缓存,然后再使用scanner.nextDouble()或scanner.nextInt()方法重新读取输入。
public static void main(String[] args) { HashMap<String,String>map=new HashMap<>(); System.out.println("-------欢迎使用学生管理系统-------"); System.out.println("请选择查询信息"); System.out.println("老师,学生,科目"); Scanner scanner=new Scanner(System.in); String number=scanner.nextLine(); switch (number) { case"老师": System.out.println("请输入想要存储老师的人数"); Scanner scanner1=new Scanner(System.in); int number1=scanner.nextInt(); System.out.println("请先输入老师的信息:"); for (int i=1;i<=number1;i++) { Scanner scanner2=new Scanner(System.in);//往哈西表里存老师的信息并输出; String key=scanner.nextLine(); String value=scanner.nextLine(); map.put(key,value); } for (String key : hashMap.keySet()) { String value = hashMap.get(key); System.out.println(key + ":" + value); } } }这段代码为啥会报错
这段代码会报错是因为在遍历 HashMap 的时候,使用了错误的变量名。在 for 循环中,应该使用 `map` 而不是 `hashMap`。
以下是代码修改后的正确版本:
```
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
System.out.println("-------欢迎使用学生管理系统-------");
System.out.println("请选择查询信息");
System.out.println("老师,学生,科目");
Scanner scanner = new Scanner(System.in);
String number = scanner.nextLine();
switch (number) {
case "老师":
System.out.println("请输入想要存储老师的人数");
Scanner scanner1 = new Scanner(System.in);
int number1 = scanner.nextInt();
System.out.println("请先输入老师的信息:");
for (int i = 1; i <= number1; i++) {
Scanner scanner2 = new Scanner(System.in);
String key = scanner.nextLine();
String value = scanner.nextLine();
map.put(key, value);
}
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ":" + value);
}
}
}
```
这样就可以正确地往 HashMap 中存储信息,并遍历输出它们了。
阅读全文