首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将程序读取一系列密码到数组&Store 10 passwords.After中,让读取器输入密码并查看它是否在数组中。

将程序读取一系列密码到数组&Store 10 passwords.After中,让读取器输入密码并查看它是否在数组中。
EN

Stack Overflow用户
提问于 2014-11-17 03:25:09
回答 1查看 186关注 0票数 0
代码语言:javascript
复制
    import java.util.Scanner;

    public class  Password
    {
        public static void main (String [] args)
        { 
            {String [] myArray = new String[10]; 
                int i; 
                System.out.println("Enter a password: "); 
                Scanner in = new Scanner(System.in); 
                String myString = in.next(); 
      //my arrays are here//
                myArray[0] = "password"; 
                myArray[1] = "password1"; 
                myArray[2] = "iloveyou"; 
                myArray[3] = "abc123"; 
                myArray[4] = "abc1234"; 
                myArray[5] = "bears55"; 
                myArray[6] = "shelby27"; 
                myArray[7] = "Mjcheer38"; 
                myArray[8] = "sillypineapple"; 
                myArray[9] = "freshvase"; 
    //not sure if this is where this  for loop should go//

                for (i=0;i<9;i++) 
                { 
                    if (myString.equals(myArray[i]))
                    { 
                        System.out.println("Password Accepted"); 
                        break;
                    } 
                    else
                    { 
                        System.out.println("Password Rejected"); 
                        break; 
                    } 
//I think my if statements are right....//

                } 
            } 
        } 
    }

完整的问题是: 6.将程序读入一系列密码到数组中。存储10个密码。创建密码数组后,让读取器输入密码并查看它是否在数组中。如果它在那里,打印“有效密码”,如果不存在,则打印“无效密码”。我不知道我可能做错了什么。对于第一个密码,它说已接受,而其余的则表示拒绝。有人能指出我哪里出了问题吗。我似乎搞不明白。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-17 03:29:38

那么,您不希望立即将break从循环中删除;这完全违背了循环的目的。

在for循环的每个可能的执行分支中包含一个break;语句(也就是说,break;不可能不执行)将确保循环主体永远不会多次执行。那就不是什么循环了。

尝试将for循环转换为:

代码语言:javascript
复制
boolean validPassword = true;

for (i=0;i<9;i++) { 
    if (myString.equals(myArray[i])) { 
        System.out.println("Invalid password");
        validPassword = false;
        break;
    } 
} 

if(validPassword) {
    System.out.println("Valid password");
}

请注意,只有当用户输入的字符串不等于数组中的任何密码时,才需要打印“有效密码”。因此,打印“有效密码”和“无效密码”将不是一个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26965023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档