java - Ensuring Type-Safe Input Using Nested While-loops -
the program have written below designed if user doesn't enter integer when prompted, program loop until do. works initial check, second check not work. code follows:
import java.util.scanner; public class safeinput { public static void main(string[]args) { system.out.println("please enter integer. if want exit, enter -1>"); scanner scan = new scanner(system.in); while(!scan.hasnextint()) { string garbage = scan.nextline(); system.out.println("you've entered garbage."); } int input = scan.nextint(); while(input != -1) { system.out.println("\nyou entered: "+input); system.out.println("please enter integer. if want exit, enter -1>"); while(!scan.hasnextint()) { system.out.println("you've entered garbage."); string garbage1 = scan.nextline(); } input = scan.nextint(); } system.out.println("-1 entered. goodbye"); } }
here's happens when execute program:
please enter integer. if want exit, enter -1> string you've entered garbage. 1 entered: 1 please enter integer. if want exit, enter -1> 2 entered: 2 please enter integer. if want exit, enter -1> string you've entered garbage. you've entered garbage. string you've entered garbage. 1 entered: 1 please enter integer. if want exit, enter -1> 2 entered: 2 please enter integer. if want exit, enter -1> -1 -1 entered. goodbye
why when fail second check integer, program outputs:
you've entered garbage. you've entered garbage.
instead of:
you've entered garbage.
thanks!
second while loop should updated below.
while(input != -1) { system.out.println("\nyou entered: "+input); system.out.println("please enter integer. if want exit, enter -1>"); scan.nextline(); while(!scan.hasnextint()) { system.out.println("you've entered garbage"); string garbage1 = scan.nextline(); } input = scan.nextint(); }
Comments
Post a Comment