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
Post a Comment