2 回答
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
TA贡献1836条经验 获得超13个赞
在使用变量numberr之前,该变量是在另一个if语句中创建的,因此,如果未设置该变量,则找不到该变量。也numberr绝不能等于"",因为它是一个整数,而不是一个字符串。为了使您的代码工作如下:
int numberr = 0;
if (s.hasNextInt()) {
numberr = s.nextInt() ;
} else {
System.out.println("Please Enter The Number");
}
if (!uname.equals("") && !pass.equals("") && numberr != 0 ){
System.out.println("logged in");
}
更好的方法是不检查numberr标准值是否为0,因为用户可能会将其设置为0。因此,您可以引入一个布尔值来确定是否numberr已设置。代码如下所示:
boolean b = false;
int numberr = 0;
if (s.hasNextInt()) {
numberr = s.nextInt() ;
b = true;
} else {
System.out.println("Please Enter The Number");
}
if (!uname.equals("") && !pass.equals("") && b ){
System.out.println("logged in");
}
我不知道您到底想达到什么目的,但是如果您要强迫用户输入数字,则可能要考虑像这样使用循环,那么您就不必检查是否numberr设置了,因为用户被迫进行设置:
while(!s.hasNextInt()) {
System.out.println("Please Enter The Number");
}
int numberr = s.nextInt() ;
if (!uname.equals("") && !pass.equals("")){
System.out.println("logged in");
}
添加回答
举报