Java 递增开关中的计数器,该计数器确定某个内容何时已满
我有一个类,它包含一辆公共汽车可以搭载多少乘客的变量。可乘坐57座乘客、2辆轮椅、2辆婴儿车和27名站立人员 在main类中,我有一个switch语句,用户可以在这4种乘客类型中进行选择(我有一个名为Menu的方法,用户可以从中进行选择),根据选择的类型,它将属于switch中的4种情况之一 在每个开关中,我都有一个计数器,每当用户选择该情况时,计数器将递增1。然而,当这个计数器等于公共汽车上的座位数时,它应该写上它已经满了 我的问题是:每次我选择箱子时,计数器都会一直递增,所以即使它大于可用座位数,它也不会停止递增Java 递增开关中的计数器,该计数器确定某个内容何时已满,java,switch-statement,Java,Switch Statement,我有一个类,它包含一辆公共汽车可以搭载多少乘客的变量。可乘坐57座乘客、2辆轮椅、2辆婴儿车和27名站立人员 在main类中,我有一个switch语句,用户可以在这4种乘客类型中进行选择(我有一个名为Menu的方法,用户可以从中进行选择),根据选择的类型,它将属于switch中的4种情况之一 在每个开关中,我都有一个计数器,每当用户选择该情况时,计数器将递增1。然而,当这个计数器等于公共汽车上的座位数时,它应该写上它已经满了 我的问题是:每次我选择箱子时,计数器都会一直递增,所以即使它大于可用座
Menu ();
boolean choice = true;
do {
int passengerType = input.nextInt();
switch (passengerType) {
case 1:
int occupiedSeat=0;
if (bus1.getSeats() > occupiedSeat) {
occupiedSeat ++;
bus1.setSeats(occupiedSeat);
System.out.println("One seatpassenger onboard. ");
} else {
System.out.println("No available seats left.");
} Menu ();
break;
//Same with the other three cases
}
} while(choice);
我也尝试过for循环,但也不起作用。有人知道我做错了什么吗 问题是您正在创建
int-occupiedSeat=0
在开关情况下
语句中,它将导致occupiedSeat
始终小于bus1.getSeats()
您需要声明occupiedSeat
退出do while
循环:
int occupiedSeat=0;
do {
} while ()
声明
int-occupiedSeat=0在循环之前进行编码,而不是在循环中进行,否则每次迭代时会将值重新初始化为0
:
int occupiedSeat=0;
do {
int passengerType = input.nextInt();
switch (passengerType) {
...
}
} while(choice);
您需要声明int-occupiedSeat=0
在开关之外
,因为每次运行它时,它的get valueoccupiedSeat=0
Menu ();
int occupiedSeat=0;
boolean choice = true;
do {
int passengerType = input.nextInt();
switch (passengerType) {
case 1:
if (bus1.getSeats() > occupiedSeat) {
occupiedSeat ++;
bus1.setSeats(occupiedSeat);
System.out.println("One seatpassenger onboard. ");
} else {
System.out.println("No available seats left.");
} Menu ();
break;
//Same with the other three cases
}
} while(choice);
最好为乘客类型定义一个枚举。