Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在while循环中修复此计数器? //姓名:贾斯汀 导入java.util.Scanner; 公营酒店 { 公共静态void main(字符串[]args) { 扫描仪键盘=新扫描仪(System.in); 内部楼层,房间号,房间号,房间号,空房间号,房间号T=0,房间号NOT=0; 双重职业; 系统输出打印(“输入酒店楼层数(必须至少输入1):”; 地板=键盘.nextInt(); 而(楼层>0) { 系统输出打印(“输入楼层+楼层+”:)上的房间数量; roomNo=keyboard.nextInt(); 如果(房间号_Java_While Loop_Counter - Fatal编程技术网

如何在while循环中修复此计数器? //姓名:贾斯汀 导入java.util.Scanner; 公营酒店 { 公共静态void main(字符串[]args) { 扫描仪键盘=新扫描仪(System.in); 内部楼层,房间号,房间号,房间号,空房间号,房间号T=0,房间号NOT=0; 双重职业; 系统输出打印(“输入酒店楼层数(必须至少输入1):”; 地板=键盘.nextInt(); 而(楼层>0) { 系统输出打印(“输入楼层+楼层+”:)上的房间数量; roomNo=keyboard.nextInt(); 如果(房间号

如何在while循环中修复此计数器? //姓名:贾斯汀 导入java.util.Scanner; 公营酒店 { 公共静态void main(字符串[]args) { 扫描仪键盘=新扫描仪(System.in); 内部楼层,房间号,房间号,房间号,空房间号,房间号T=0,房间号NOT=0; 双重职业; 系统输出打印(“输入酒店楼层数(必须至少输入1):”; 地板=键盘.nextInt(); 而(楼层>0) { 系统输出打印(“输入楼层+楼层+”:)上的房间数量; roomNo=keyboard.nextInt(); 如果(房间号,java,while-loop,counter,Java,While Loop,Counter,您好,此程序用于计算酒店的入住率、房间总数、已入住房间总数和空置房间总数。输入是楼层数、每层的房间数以及给定楼层上已占用的房间数。输入数据后,入住率始终为0.0,这是我的问题。我觉得问题在于我的变量计数器:occRoomsT和roomNoT。只需制作 //Name: Justin import java.util.Scanner; public class hotelOccupancy { public static void main(String[] args)

您好,此程序用于计算酒店的入住率、房间总数、已入住房间总数和空置房间总数。输入是楼层数、每层的房间数以及给定楼层上已占用的房间数。输入数据后,入住率始终为0.0,这是我的问题。我觉得问题在于我的变量计数器:occRoomsT和roomNoT。

只需制作

  //Name: Justin 

  import java.util.Scanner;

  public class hotelOccupancy
  {

  public static void main(String[] args)
  {

  Scanner keyboard = new Scanner(System.in);
  int floors, roomNo, occRooms, emptyRooms, occRoomsT = 0, roomNoT = 0;
  double occupancyRate;

  System.out.print("Enter the amount of floors in the hotel(must enter at least 1): ");
    floors = keyboard.nextInt();

  while(floors > 0)
     {
  System.out.print("Enter the amount of rooms on floor " + floors + ":");
    roomNo = keyboard.nextInt();

     if(roomNo < 10)
     {
  System.out.println("There is a minimum of 10 rooms per floor");
  System.out.print("Enter the amount of rooms on floor " + floors + ":");
    roomNo = keyboard.nextInt();
     }

  System.out.print("Enter the amount of rooms on floor " + floors + " that are occupied: ");
    occRooms = keyboard.nextInt();

     if(occRooms < 0 || occRooms > roomNo)
     {
  System.out.println("Please enter a valid number of occupied rooms");
  System.out.print("Enter the amount of rooms on floor " + floors + " that are occupied: ");
    occRooms = keyboard.nextInt();
     }

   occRoomsT = occRoomsT + occRooms;
   roomNoT = roomNoT + roomNo;  
   floors--;
   }

  occupancyRate = occRoomsT / roomNoT;
  emptyRooms = roomNoT - occRoomsT;

  System.out.println("The total amount of rooms is: " + roomNoT);
  System.out.println("The total amount of occupied rooms is: " + occRoomsT);
  System.out.println("The occupancy rate is: " + occupancyRate);
  System.out.println("The amount of vacant rooms is: " + emptyRooms);

  }
  }

房间总数始终为整数,将其声明为双精度不是一种好做法,与整数相比,这会占用更多空间。

您正在执行整数算术,而不是浮点算术。在执行除法之前,将变量转换为
float
double
。顺便说一句,如果您编写了一个程序,您可能会自己发现问题(这与循环完全无关)。@SJuan76我将emptyRooms、roomNoT和occRoomsT变量更改为double,现在程序工作正常。非常感谢。
occupancyRate = ((double)occRoomsT) / roomNoT;