小弟新手 ,求高手帮助
那位大哥大姐帮小弟看看下面的代码,好像只对了一半,请给小弟改改.
import java.util.Scanner;
public class dengru {
public static void main(String[] ages) {
Scanner pout = new Scanner(System.in);
String name = "afh";
int mima = 123456;
int cishu = 3;
for (int i = 0; i < 3; i++) {
System.out.print("请输入用户名:");
String name2 = pout.next();
System.out.print("请输入密码:");
int mima2 = pout.nextInt();
if (name2 == name || mima2 == mima) {
System.out.print("欢迎登录MyShopping系统!");
break;
}
else if (name2 != name || mima2 != mima) {
cishu = cishu - 1;
System.out.println("输入错误!你还有" + cishu + "次机会\n");
continue;
}
}
System.out.print("对不起,你3次都输入错误!");
}
}
------解决方案--------------------一眼看过去,比较大的问题是:
if (name2 == name || mima2 == mima)
字符串比较应该用 equals():
if (name2.equals(name) || mima2 == mima)
另外,else if 其实多余,改成 else 就行了。
最后,密码用数字,这个比较怪异。
------解决方案--------------------帮你改了试试 String类型的数据判断他们的值是否相等是不能用==号的。要调用equals()函数,还有用户跟密码要同时满足才能等入的所有要用&&号连接。
Java code
import java.util.Scanner;
public class dengru
{
public static void main(String[] ages)
{
Scanner pout = new Scanner(System.in);
String name = "afh";
int mima = 123456;
int cishu = 3;
for (int i = 0; i < 3; i++)
{
System.out.print("请输入用户名:");
String name2 = pout.next();
System.out.print("请输入密码:");
int mima2 = pout.nextInt();
if (name.equals(name2) && mima2 == mima)
{
System.out.print("欢迎登录MyShopping系统!");
break;
}
else if (name2 != name || mima2 != mima)
{
cishu = cishu - 1;
System.out.println("输入错误!你还有" + cishu + "次机会\n");
continue;
}
System.out.print("对不起,你3次都输入错误!");
}
}
}