I'd like to not make use of the "do" statement and instead only use a while. The problem is I don't know how to execute the while statement without looping forever.
import java.util.*; public class ArbitraryNumbers { public static void main(String[] args) { // local variables Scanner scan = new Scanner (System.in); // used to read integers being entered int[] numbersArray; // iniatilizes array for numbers entered int[] histogram = new int[11]; // new array for groups of numbers 0 - 11 // group of numbers to be counted String[] groups = {"0 | ", "1 | ", "2 | ", "3 | ", "4 | ", "5 | ", "6 | ", "7 | ", "8 | ", "9 | ", "10 | " }; String msg; // Used to scan lines entered by user boolean isDone = false; // initialize exit statement to false /******************** Start main method *****************/ // Give instructions on how to input numbers System.out.println("\n\n Number Counting \n\n" + " \n" + " After each Input press ENTER \n\n" + " Enter Numbers: "); // DO Scan the next line of input do { // Scan the first input msg = scan.nextLine(); // IF the line of text is not "done" if (!msg.equals("done")) { // Pass the integer into the conditions below int number = Integer.parseInt(msg); // IF the number is between 0 and 10 if (number > -1 && number < 11) { // Add a counter to the number entered histogram [number] += 1; } // Tell user he has enetered an invalid number else System.out.println ( " Please enter a valid number " ); } // ELSE done becomes true else { // Set Boolean to true isDone = true; } } // WHILE user decides to enter Numbers while (!isDone); { // Display blank lines to show different Output Screen for (int enoughLines = 0; enoughLines <= 30; enoughLines++) // Print an empty space System.out.println(); System.out.println("\t\t\t\t" + " RESULTS " ); // FOR each number between 0 and 11 for (int NumberGroups = 0; NumberGroups<histogram.length; NumberGroups++) { // Display the Numbers 0 through 11 System.out.print("\t\t\t\t" + groups[NumberGroups]); // Initialize count to equal the number of groups we have int count = histogram[NumberGroups]; // FOR each number for(int asteriks = 0; asteriks < count; asteriks++) { // Display an asteriks for that number System.out.print("*"); } // Skip a line for the next number to have an asterik System.out.print("\n"); } } } }