Khovsepa Khovsepa - 26 days ago 5
Java Question

Skipping a number in a for loop sequence?

so I have another homework question. First, I'll list the instructions and then I'll list my code and hopefully someone can help me/guide me in the right direction.

DIRECTIONS:

Write a program that calculates the occupancy rate for a hotel. The program should start by asking the user how many floors the hotel has. A for loop should then iterate once for each floor. In each iteration of the for loop, the program should ask the user for the number of rooms of the floor and how many of them are occupied. After all of the iterations are complete the program should display how many rooms the hotel has, how many of them are occupied, and the percentage of rooms that are occupied.


It is traditional that many hotels do not have a 13th floor. The for loop in >this program should skip the entire thirteenth loop iteration.


Input validation (remember to use a loop never ever an "if"): Do not accept a value of less than one for the number of floors. Do not accept a value of less than 10 for the number of rooms on a floor.

MY CODE:

import java.util.Scanner;
import java.text.DecimalFormat;

public class Homework7Hotel
{
public static void main (String[] args)
{
Scanner keyboard = new Scanner (System.in);
DecimalFormat formatter = new DecimalFormat("%#,##0.00");
int numFloors = 0;
int numRooms = 0;
int totalRooms = 0;
int numOccupied = 0;
int totalOccupied = 0;
int percentOccupied = 0;

System.out.println("Please enter the number of floors in the hotel: ");
numFloors = keyboard.nextInt();

while (numFloors <1)
{
System.out.println("You have entered an invalid number of floors. ");
System.out.println("Please enter the number of floors in the hotel: ");
numFloors = keyboard.nextInt();
}

for (int counter = 1; counter <=numFloors; counter++)
{
System.out.println("Please enter the number of rooms on floor #: " + counter);
numRooms=keyboard.nextInt();
totalRooms += numRooms;

while (numRooms <10)
{
System.out.println("You have entered an invalid number of rooms. ");
System.out.println("Please enter the number of rooms on floor #: " + counter);
numRooms = keyboard.nextInt();
}
System.out.println("Please enter the number of occupied rooms on floor #: " + counter);
numOccupied = keyboard.nextInt();
totalOccupied += numOccupied;
// *not sure of how to do this* percentOccupied = totalOccupied/totalRooms;
}

System.out.println("The hotel has a total of " + totalRooms + " rooms.");
System.out.println(totalOccupied + " of the rooms are occupied.");
System.out.println (percentOccupied + "% of the rooms are occupied.");

}
}


So, the issue I am having is:

1) As per the instructions, how would I skip the 13th floor entirely in the loop?

Any help would be greatly appreciated! Thank you!

Answer
    public static void main (String[] args)
    {
        Scanner keyboard = new Scanner (System.in);
        DecimalFormat formatter = new DecimalFormat("%#,##0.00");
        int numFloors = 0;
        int numRooms = 0;
        int totalRooms = 0;
        int numOccupied = 0;
        int totalOccupied = 0;
        int percentOccupied = 0;

        System.out.println("Please enter the number of floors in the hotel: ");
        numFloors = keyboard.nextInt();

        while (numFloors <1)
        {
            System.out.println("You have entered an invalid number of floors. ");
            System.out.println("Please enter the number of floors in the hotel: ");
            numFloors = keyboard.nextInt();
        }

        for (int counter = 1; counter <=numFloors; counter++)
        {
            System.out.println("Please enter the number of rooms on floor #: " + counter);
            numRooms=keyboard.nextInt();
            //REMOVE totalRooms += numRooms; from here

            while (numRooms <10)
            {
                System.out.println("You have entered an invalid number of rooms. ");
                System.out.println("Please enter the number of rooms on floor #: " + counter);
                numRooms = keyboard.nextInt();
            }
            totalRooms += numRooms;  //ADD it here

            System.out.println("Please enter the number of occupied rooms on floor #: " + counter);
            numOccupied = keyboard.nextInt();
            totalOccupied += numOccupied;
            // *not sure of how to do this* percentOccupied = totalOccupied/totalRooms;
        }

        System.out.println("The hotel has a total of " + totalRooms + " rooms.");
        System.out.println(totalOccupied + " of the rooms are occupied.");
        System.out.println (percentOccupied + "% of the rooms are occupied.");
    }