System.out.println("输入具体删除房间的类型:"); int userOut=user.nextInt(); if(userIn==1) { BigBeddd.remove(BigBeddd.size()-1); BigBed.leixing[userOut-1]--; } else if(userIn==2) { DoubleFangdd.remove(DoubleFangdd.size()-1); DoubleFang.leixing[userOut-1]--; } else if(userIn==3) { TaoFangdd.remove(TaoFangdd.size()-1); TaoFang.leixing[userOut-1]--; } System.out.println("房间删除成功!");这一段程序为什么会在中间停住
时间: 2024-04-03 18:31:24 浏览: 92
这段程序停住的原因可能是因为在执行 `user.nextInt()` 时,程序等待用户输入信息。如果用户没有输入,程序就会一直等待下去,导致程序中间停止。你可以尝试在输入之前添加一个提示信息,告诉用户需要输入什么信息,以及在输入之后添加一个确认信息,告诉用户输入已经成功完成,这样可以避免程序中间停止的问题。另外,你还需要确认变量 `userIn` 是否已经被正确地初始化。
相关问题
private static void deleteRoom(Scanner user) {//删除房间方法 System.out.println("当前您的车辆清单如下:"); System.out.println("1.高级大床房 拥有"+(BigBed.leixing[0])); System.out.println("2.豪华大床房 拥有"+(BigBed.leixing[1])); System.out.println("3.景观大床房 拥有"+(BigBed.leixing[2])); System.out.println("1.标准双床房 拥有"+(DoubleFang.leixing[0])); System.out.println("2.高级双床房 拥有"+(DoubleFang.leixing[1])); System.out.println("3.豪华双床房 拥有"+(DoubleFang.leixing[2])); System.out.println("1.景致小套房 拥有"+(TaoFang.leixing[0])); System.out.println("2.婴儿小套房 拥有"+(TaoFang.leixing[1])); System.out.println("3.亲子大套房 拥有"+(TaoFang.leixing[2])); //打印当前房间情况 System.out.println("请您输入要增加的房间的大类型,1-大床房,2-双床房,3-套房:"); int userIn=user.nextInt(); if(userIn==1) { System.out.println("1.高级大床房 拥有"+(BigBed.leixing[0])); System.out.println("2.豪华大床房 拥有"+(BigBed.leixing[1])); System.out.println("3.景观大床房 拥有"+(BigBed.leixing[2])); } else if(userIn==2) { System.out.println("1.标准双床房 拥有"+(DoubleFang.leixing[0])); System.out.println("2.高级双床房 拥有"+(DoubleFang.leixing[1])); System.out.println("3.豪华双床房 拥有"+(DoubleFang.leixing[2])); } else if(userIn==3) { System.out.println("1.景致小套房 拥有"+(TaoFang.leixing[0])); System.out.println("2.婴儿小套房 拥有"+(TaoFang.leixing[1])); System.out.println("3.亲子大套房 拥有"+(TaoFang.leixing[2])); } System.out.println("输入具体添加法房间的类型:"); int userOut=user.nextInt(); if(userIn==1) { BigBeddd.remove(BigBeddd.size()-1); BigBed.leixing[userOut-1]--; } else if(userIn==2) { DoubleFangdd.remove(DoubleFangdd.size()-1); DoubleFang.leixing[userOut-1]--; } else if(userIn==3) { TaoFangdd.remove(TaoFangdd.size()-1); TaoFang.leixing[userOut-1]--; } System.out.println("房间删除成功!"); }这段代码为什么不能输出
这段代码无法输出是因为它没有被调用,即没有在其他方法中被调用。您需要在其他方法中调用该方法才能执行其中的代码并输出结果。例如,您可以在主方法中调用该方法,如下所示:
```
public static void main(String[] args) {
Scanner user = new Scanner(System.in);
deleteRoom(user); // 调用删除房间方法
}
```
这样就可以执行 `deleteRoom()` 方法中的代码并输出结果。当然,您也可以在其他方法中调用该方法,具体取决于您的程序逻辑。
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()方法重新读取输入。
阅读全文