[英]Loops? I need to figure out how to fix this.
当我运行我的程序并尝试添加输入时。 它一直说无效输入。 再次输入。 我知道为什么b / ci会添加一个while循环,但是那是针对小于1的输入的。我该如何解决呢? 我需要显示入住率和空房间的数量。 我是一个初学者,所以我认为我犯了一个愚蠢的错误。 有人可以帮我吗?
import java.util.Scanner;
public class hotelOccupancy
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int floors, numFloors, rooms,totalRoomsOccupied,roomsOccupied, vacant;
double totalRooms;
System.out.println("Enter number of floors");
floors = input.nextInt();
while(floors < 1);
{
System.out.println("Invalid input. Enter again");
}
floors = input.nextInt();
numFloors = input.nextInt();
for(floors = 1; floors <= numFloors; floors++)
{
System.out.println("Enter number of rooms in floor");
rooms = input.nextInt();
while(rooms < 1);
{
System.out.println("Invalid entry. Enter again");
}
System.out.println("Enter number of rooms occupied for floor" + floors);
roomsOccupied = input.nextInt();
totalRoomsOccupied = input.nextInt();
totalRoomsOccupied = totalRoomsOccupied + roomsOccupied;
}
rooms = input.nextInt();
totalRoomsOccupied = input.nextInt();
vacant = rooms - totalRoomsOccupied;
totalRooms = input.nextDouble();
double occupancyRate = totalRoomsOccupied/totalRooms;
System.out.println("The number of rooms vacant are" + vacant);
System.out.println("Then occupancy rate is" + occupancyRate);
您必须移动rooms = input.nextInt();
进入while(rooms < 1)
循环。
while(floors < 1);
等于while(floors < 1){}
因此,如果输入的数字小于1,则循环将永远不会结束。
您必须在while循环中输入一个新输入(并在while之后删除;
)。
while(floors < 1){
System.out.println("Invalid input. Enter again");
floors = input.nextInt();
}
您必须为另一个while循环做同样的事情(不要忘了在while之后删除;
):
while(rooms < 1){
System.out.println("Invalid entry. Enter again");
rooms = input.nextInt();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.