繁体   English   中英

循环? 我需要弄清楚如何解决这个问题。

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM