错误的代码
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("退出程序");}}
运行如下:
所以该代码能符合题目的要求,为正确代码 。