当前位置: 代码迷 >> J2SE >> 小弟生手 ,求高手帮助
  详细解决方案

小弟生手 ,求高手帮助

热度:7188   发布时间:2013-02-25 00:00:00.0
小弟新手 ,求高手帮助
那位大哥大姐帮小弟看看下面的代码,好像只对了一半,请给小弟改改.
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次都输入错误!");        }            }}
  相关解决方案