I want to achieve this menu to keep looping to receive input when i enter the wrong input other than 1,2,3. How and where to put my while loop/ do while loop? I am new in JAVA.
After the user input other than 1,2 or 3 it should prompt the menu again. May i know how? Thanks.
How and where to put my while loop/ do while loop?
import java.util.*;
public class InputMenu
{
public void display_menu()
{
System.out.println("1) Option 1\n2) Option 2\n3) Option 3");
System.out.print("Selection: ");
}
public void question()
{
System.out.println("Would you like to proceed or quit?");
System.out.println("To proceed enter 9.");
System.out.println("If you wish to quit enter 0.");
Scanner q = new Scanner(System.in);
switch (q.nextInt())
{
case 0:
System.out.println ("Thank you and goodbye.");
break;
case 9:
System.out.println ("Please proceed.");
new InputMenu();
break;
default:
System.err.println ( "Unrecognized option" );
reenter();
break;
}
}
public void reenter(){
System.out.println ("Please re-enter option from 1 - 3 only.");
display_menu();
}
public InputMenu()
{
Scanner in = new Scanner(System.in);
display_menu();
switch (in.nextInt())
{
case 1:
System.out.println ( "You picked option 1" );
question();
break;
case 2:
System.out.println ( "You picked option 2" );
question();
break;
case 3:
System.out.println ( "You picked option 3" );
question();
break;
default:
System.err.println ( "Unrecognized option" );
reenter();
break;
}
}
public static void main (String[]args)
{
new InputMenu();
}
}
Could be in your Constructor
public InputMenu()
{
Scanner in = new Scanner(System.in);
display_menu();
do{ //here
int input = in.nextInt();
switch (input)
{
case 1:
System.out.println ( "You picked option 1" );
question();
break;
case 2:
System.out.println ( "You picked option 2" );
question();
break;
case 3:
System.out.println ( "You picked option 3" );
question();
break;
default:
System.err.println ( "Unrecognized option" );
reenter();
}
}
while(input>3 || input <1); //here
}
You can use the below code to input some integers specified by valid
.
public static int read(String hint, Scanner scanner, Integer... valid) {
System.out.print(hint);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
try {
int input = Integer.parseInt(line);
if (Arrays.asList(valid).contains(input))
return input;
} catch (NumberFormatException e) {}
System.out.print(hint);
}
return -1; // This is unreachable
}
Then you call
int selection = read("Selection: ", in, 1, 2, 3);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.