Scanner input = new Scanner(System.in);
int choose = 0;
String isGoOn = null;
do{
System.out.println("================================================");
System.out.println("1.增加用户名 2.查询用户名 3.修改用户名 4.删除用户名");
System.out.println("================================================");
System.out.println("请选择");
if(input.hasNextInt()){
choose = input.nextInt();
switch(choose){
case 1:
System.out.println("您选择了1");
break;
case 2:
System.out.println("您选择了2");
break;
case 3:
System.out.println("您选择了3");
break;
case 4:
System.out.println("您选择了4");
break;
dafault:
System.out.println("请输入正确的数字");
break;
}
}else{
System.out.println("请输入正确的数字");
}
System.out.println("是否继续操作(y/n)");
isGoOn = input.next();
}while("y".equals(isGoOn));
以上代码执行过程中,如果在请"选择后"输入非int型的值就会提示"请输入正确的数字",可是为什么在提示"是否继续操作"时无法从控制台输入呢?也就是isGoOn = input.next();不起作用了。但是如果我输入的时正确数字想循环时isGoOn = input.next();就起作用,可以在控制台输入。
这里的"y "应该是"y"你多写了一个空格,所以导致 输入y回车没有想要的效果
你把最后一行改成while( "y".equals(isGoOn));
GoOn=input.next();
System.out.println( "是否继续操作(y/n) ");
前面,用来接收前面输入的值就可以啦
2楼提示得对,应该为"y".equals(...)。
import java.util.Scanner;public class XinTest { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int choose;
String isGoOn ,GoOn;
do{
System.out.println( "================================================ ");
System.out.println( "1.增加用户名 2.查询用户名 3.修改用户名 4.删除用户名 ");
System.out.println( "================================================ ");
System.out.println( "请选择 ");
if(input.hasNextInt()){
choose = input.nextInt();
switch(choose){
case 1:
System.out.println( "您选择了1 ");
break;
case 2:
System.out.println( "您选择了2 ");
break;
case 3:
System.out.println( "您选择了3 ");
break;
case 4:
System.out.println( "您选择了4 ");
break;
default :
System.out.println( "请输入正确的数字 ");
break;
}
}else{
GoOn=input.next();
System.out.println( "请输入正确的数字 ");
}
System.out.println( "是否继续操作(y/n) ");
isGoOn = input.next();
}while( "y".equals(isGoOn) );
}}