【问题标题】:ArrayList with if statements带有 if 语句的 ArrayList
【发布时间】:2018-09-27 18:18:18
【问题描述】:

我的任务是使用 ArrayLists 创建一个简单的图灵测试。我知道如何创建 ArrayList,但我无法将它们连接到 if 语句以正确响应用户输入。下面是这个问题的一个例子。当用户输入 Frank 我想要第一个响应时,任何其他输入都应该导致另一个响应。但是,无论我输入什么,我所做的任何调整都会显示其中一个或另一个。

List<String> names = new ArrayList<>();

names.add( "Frank" );

System.out.print( "Hello, what is your name? ");
names.add(scanner.next());

if( names.contains( "Frank" )) {
    System.out.printf( "Nice to meet you, Frank. My name is John.\n" );
}
else {
    System.out.printf( "What an interesting name. My name is John.\n");
}

**还有另一个问题。对于第二个问题,我尝试使用 else if 语句。但是,当我使用 else if 响应时,它每次都会给我最终的 else 响应“我永远不会猜到”。

System.out.print("Where are you from? ");
    states.add(scanner.next());

    if (states.contains("Florida") || states.contains("florida")) {
        System.out.println("So was I!\n");
    } else {
    if (states.contains("North Carolina") || states.contains("north carolina")) {
        System.out.println("I hear that's a nice place to live.\n");
    }
    else {
            System.out.println("I would have never guessed!");
        }
    }

【问题讨论】:

  • 当前设置应用程序的方式将始终打印What an interesting name. My name is John.。这是因为数组始终包含 Frank,因为您的代码为 names.add( "Frank" );。数组中的其他所有内容都无关紧要,因为您只检查 Frank
  • 如果您还有其他问题,您能否为它创建另一个问题?如果您在此处链接到其他问题,我将很乐意提供帮助。

标签: java arrays if-statement contains


【解决方案1】:

尝试以下方法:

List<String> names = new ArrayList<>();

System.out.print( "Hello, what is your name? ");
names.add(scanner.next());

if(names.contains( "Frank" )){
    System.out.printf( "Nice to meet you, Frank. My name is John.\n" );
}else{
    System.out.printf( "What an interesting name. My name is John.\n");
}

我删除了将Frank 添加到数组的部分。这样,根据您的输入,结果可能会有所不同。我仍然觉得您使用ArrayList 有点奇怪。似乎只保存一个简单的变量就可以做同样的事情。

使用ArrayList,但是您之前的答案可能会影响其他答案。

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 2012-01-27
    • 2016-08-15
    • 2014-10-26
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多