Java User Input - Enter integer within certain range or loop back and try again -


i have build user input template can enter number between 100 , 200. if type "goodbye", needs exit, if enter letter, symbol, number outside range, etc. needs prompt try again. if enter number within range, move on question (i haven't included in code below).

i got work. if enter correct number first time, works. "goodbye" , wrong character functions work. if enter wrong character (number or letter) , then, when prompts try again, put correct number in range, not accept , again prompts try again.

i need figure out how input wrong character (such letter or number outside of range), , when prompts try again , put number between 100-200, works , exits loop (which enable go on next question/loop).

here code:

scanner console = new scanner(system.in);     string input;     int number;     boolean isvalid = true;                 {         system.out.println("enter valid number:");         input = console.nextline();            if (input.equals("goodbye") || input.equals("goodbye")){                system.out.println("you have left");               system.exit(0);            }         char[] numbertester = input.tochararray();        (int = 0; i<input.length(); i++){            character currentchar = new character (numbertester[i]);            if (!currentchar.isdigit(numbertester[i])){              isvalid = false;              system.out.println("invalid. try again.");               = input.length();            }            if (isvalid == true){            number = integer.parseint(input);                if (number < 100 || number > 200){              isvalid = false;              system.out.println("invalid. try again.");                }            }        }          } while (isvalid == false); }         } 

in beginning isvalid flag set true. do-while loop runs while flag false. if enter valid in first round quits loop. if enter invalid set flag false , never again, loops forever.
setting isvalid flag true first statement in do while loop should solve problem.

[...] do{     isvalid = true;     [...] } while (isvalid == false); 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -