【问题标题】:Asking for name again if the first name input doesn't match the second name input如果输入的名字与输入的第二个名字不匹配,则再次询问名字
【发布时间】:2021-07-30 06:44:06
【问题描述】:

我想做一个程序,询问用户他的名字两次。如果无论大小写,这两个名称都相同,它将打印成功。如果两个名字不相同,它会再次要求用户输入另一组名字(2个名字),如果现在相同,它也会打印成功。

public static void main(String args[]) throws IOException {
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter name: ");
    String one = input.readLine();
    System.out.println("Enter name: ");
    String two = input.readLine();
        
    if (one.equalsIgnoreCase(two)) {
        System.out.print("Success");
    }
    else {
        System.out.println("Enter name: ");
        input.readLine();
        System.out.println("Eneter name: ");
        input.readLine();
    }
}

检查两个名称是否相同的部分很好。我感到困惑的部分是它将要求另一组 2 个名称的代码

else {
    System.out.println("Enter name: ");
    input.readLine();
    System.out.println("Eneter name: ");
    input.readLine();
}

示例输出:

Enter name:
Mark Andrew
Enter name:
Mark Andrew
Success
Enter name:
Mark Andrew
Enter name:
John Paul
Enter name:
Mark Andrew
Enter name:
Mark Andrew
//this is the part that I am confused. It doesn't print success//

我愿意接受意见和建议。 谢谢

【问题讨论】:

    标签: java input bufferedreader


    【解决方案1】:

    else 部分,您不会再次检查名称是否相同。这就是为什么下次您使用相同的名称时它不会显示成功的原因。如果我们想在输入相同的名称之前进行输入,那么使用循环会更好。

    public static void main(String args[]) throws IOException {
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        boolean areNamesEqual = false;
        while(!areNamesEqual) {
            System.out.println("Enter name: ");
            String one = input.readLine();
            System.out.println("Re-enter name: ");
            String two = input.readLine();
            if (one.equalsIgnoreCase(two)) {
                areNamesEqual = true;               
            }
        }
        System.out.print("Success");
    }
    

    【讨论】:

    • 但是如果我想用第一个 if 代替呢?
    • 我想做的是让每次我输入不同的名字时,它都会一直要求我输入另一组名字,直到我输入两个相同的名字。然后,如果我输入两个相同的名称,它将打印成功。
    • 如果要比较名称,则使用循环,直到第一次和第二次输入相同的名称。请查看更新后的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多