错误的代码
import java.util.Scanner;
public class one {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String b="47568";
int i=0;
for ( i = 0; i <3; i++)
{
String a=sc.next();
if(a==b)
{
System.out.println("密码正确,登录成功");
break;
}
else {
System.out.println("密码错误");
}
}
if (i==3)
System.out.println("退出程序");
}
}
用该代码就算输入正确密码也会错误。
这说明在java中不能用等号去比较字符串。在c语言中也不能用等号去比较字符串,而是用strcmp去比较字符串。而在java中我们是用equals去比较字符串的,如a.equals(b),如果a和b相等,则返回true,反之false。(a和b都可以为常量值去进行比较如“adasd”.equals("adasd")).
所以得出以下正确代码。
正确的代码
import java.util.Scanner;
public class one {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String b="47568";
int i=0;
for ( i = 0; i <3; i++)
{
String a=sc.next();
if(a.equals(b))
{
System.out.println("密码正确,登录成功");
break;
}
else {
System.out.println("密码错误");
}
}
if (i==3)
System.out.println("退出程序");
}
}
运行如下:
所以该代码能符合题目的要求,为正确代码 。