java - Confining User Inputed Numbers Between 1 and 30 -


i writing program asks 5 user inputed numbers; however, need keep numbers confined between 1 , 30. having trouble writing while loop part of program.

here code:

 scanner input = new scanner(system.in);            int numbercounter = 0; // set scanner 0          // intialize numbers 1-5          int number1;           int number2;          int number3;          int number4;          int number5;          string asterisk = "*"; // holds string value "*"   int number = 0;              while (number < 1 || number > 30){                  system.out.print("enter first number (between 1-30): ");                  number = keyin.nextint();              }           system.out.print("please enter number between 1 , 30: ");// calls user input          number1 = input.nextint();// stores user input number 1           system.out.print("please enter number between 1 , 30: ");// calls user input          number2 = input.nextint();// stores user input number 2           system.out.print("please enter number between 1 , 30: ");// calls user input          number3 = input.nextint();// stores user input number 3           system.out.print("please enter number between 1 , 30: ");// calls user input          number4 = input.nextint();// stores user input number 4           system.out.print("please enter number between 1 , 30: ");// calls user input          number5 = input.nextint();// stores user input number 5           system.out.printf("%d ", number1);          (int = 1; <= number1; i++)              system.out.print("*");          system.out.println();           system.out.printf("%d ", number2);          (int = 1; <= number2; i++)              system.out.print("*");          system.out.println();           system.out.printf("%d ", number3);          (int = 1; <= number3; i++)              system.out.print("*");          system.out.println();           system.out.printf("%d ", number4);          (int = 1; <= number4; i++)              system.out.print("*");          system.out.println();           system.out.printf("%d ", number5);          (int = 1; <= number5; i++)              system.out.print("*");          system.out.println();       }   } 

can steer in right direction.

thank you.

you can avoid redundant code keeping nextint() inside while loop , use counter track desired number of inputs want read. , exit loop when valid numbers read.

    scanner input = new scanner(system.in);     byte maxnum = 31;     byte minnum = 1;      int[] numbers = new int[5];      int number = 0;     int = 0;      while (i<5) {          system.out.print("enter number("+(i+1)+") between "+minnum + " , "+maxnum+ " : ");         number = input.nextint();          if(number >=minnum && number <= maxnum){             numbers[i] = number;             i++;         }else{             system.out.println("--------invalid number :"+number+ " ");         }     }      system.out.print("entered numbers :");      for(int n : numbers){         system.out.print(n + ",");     } 

note : code may fail, char , out of range of inputs.


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -