0

プログラムを実行して入力を追加しようとすると。無効な入力と言い続けます。もう一度入力してください。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);
4

2 に答える 2

1

をループに移動する必要がrooms = input.nextInt();あります。while(rooms < 1)

于 2013-11-02T10:34:53.367 に答える
0

while(floors < 1);1 未満の数値を入力すると、ループはwhile(floors < 1){}終了しません。

while ループで新しい入力を取得する必要があります (および while の;後に削除します)。

while(floors < 1){
      System.out.println("Invalid input. Enter again");
      floors = input.nextInt(); 
}

;他の while ループについても同じことを行う必要があります (しばらく後にも削除することを忘れないでください)。

while(rooms < 1){
     System.out.println("Invalid entry. Enter again");
     rooms = input.nextInt();
}
于 2013-11-02T10:34:52.597 に答える