今天用循环来运行if嵌套判断nextline和nextint 出现了第二次循环被nextline空值替代的问题,原因是第一次循环nextint最后的回车符未被保留在里面,残存在了缓冲区,到了第二次循环中,nextline接收到了缓冲区中的回车符,所以导致第二次循环被空值给替代。
package test;
import java.util.Scanner;
public class loginTest { public static void main(String[] args) { login usr = new login(); Scanner sc = new Scanner(System.in); String username ; for (int i=1;i<4;i++){ System.out.println(“请输入用户名:”); username = sc.nextLine(); if (usr.username.equals(username)){ System.out.println(“请输入密码:”); int password = sc.nextInt(); if (password == usr.password){ System.out.println(“恭喜登陆成功!”);
}else {
if (i<3){
System.out.println("您输入的密码有误,请重新输入");
}else {
System.out.println("您的登陆次数已用完,请重新访问本网页");
}
}
}else{
if (i<3){
System.out.println("您输入的用户名有误,请重新输入");
}else {
System.out.println("您的登陆次数已用完,请重新访问本网页");
}
}
}
}
}
|