I'm looking for a better way to execute my for loop without using a "break;" in my code
Here is my full code which is a program that counts how many times a digit is entered between 0 and 10 inclusive. I believe my logic is right, but I need a way to execute my for loops without breaking and also I need to know how to give the user the option of playing again.
My code runs fine like this but I would appreciate any help on alternate ways not involving a "break;"
if (msg.equalsIgnoreCase("done")) { break; }
Here is my full code which is a program that counts how many times a digit is entered between 0 and 10 inclusive. I believe my logic is right, but I need a way to execute my for loops without breaking and also I need to know how to give the user the option of playing again.
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 enoughLines = 50; // used to seperate input from output screen int[] histogram = new int[11]; // new array for groups of numbers 0 - 11 String[] groups = {"0 | ", "1 | ", "2 | ", "3 | ", "4 | ", "5 | ", "6 | ", "7 | ", "8 | ", "9 | ", "10 | " }; String msg; // Used to scan lines entered by user System.out.println("Please enter lines numbers in range 0 - 10 (or 'done' when finished):"); // DO Scan the next line of input do { 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) { // if(number <= 0) { histogram[0] += 1; } if(number <= 1 && number >0) { histogram[1] += 1; } if(number <= 2 && number >1) { histogram[2] += 1; } if(number <= 3 && number >2) { histogram[3] += 1; } if(number <= 4 && number >3) { histogram[4] += 1; } if(number <= 5 && number >4) { histogram[5] += 1; } if(number <= 6 && number >5) { histogram[6] += 1; } if(number <= 7 && number >6) { histogram[7] += 1; } if(number <= 8 && number >7) { histogram[8] += 1; } if(number <= 9 && number >8) { histogram[9] += 1; } if(number <= 10 && number >9) { histogram[10] += 1; } } else System.out.println ( " Please enter a valid number " ); } if (msg.equalsIgnoreCase("done")) { break; } } while (true); for (int i = 0; i<histogram.length; i++) { System.out.print(groups[i]); int count = histogram[i]; for(int k = 0; k < count; k++) { System.out.print("*"); } System.out.print("\n"); } } }
My code runs fine like this but I would appreciate any help on alternate ways not involving a "break;"