繁体   English   中英

如果-else语句

[英]If - else statements

我在if else语句中的逻辑存在问题。

  String[] keywords = { "day", "What book", "office", "hour",
            "e-mail" };

    Scanner scanner = new Scanner(System.in);
    String input = null;
    /* -end init- */

    System.out.println("Welcome ");
    System.out.println("What's on your mind?");
    do {
        System.out.print("> ");
        input = scanner.nextLine().toLowerCase();
        for (String keyword : keywords) {

            if (input.contains(keyword)) {
                parseFile(keyword);

            }

            else  {
                Writer();

            }
        }
        break;
    } while (input.equalsIgnoreCase("bye"));
    System.out.println("Have a good day!");

}
 }

由于某种原因,第一个IF语句将被忽略。 有人可以给我一些建议吗? 谢谢

使用map将减少每次检查是否遍历整个数组的循环。

我尝试运行该程序,效果很好。 如果假设我输入day作为输入。 然后, if进入一次,进入(关键字的长度为1)一次,进入另一个。 请检查您输入的值是否与关键字数组中输入的值不同。

package myApp;

import java.util.Scanner;

public class Client{
    public static void main(String[] args) {
        String[] keywords = { "day", "Cs 377", "What book", "office", "hour",
                "e-mail", "name", "major", "student e-mail", "group id",
                "lectures", "lecture room", "lecture time",
                "number of lectures", "current lecture",
                "topics of current lecture", "number of test",
                "date of a test", "number of assignments", "sure",
                "current assignment", "due day" };

        Scanner scanner = new Scanner(System.in);
        String input = null;
        /* -end init- */

        System.out.println("Welcome ");
        System.out.println("What's on your mind?");
        do {
            System.out.print("> ");
            input = scanner.nextLine().toLowerCase();
            for (String keyword : keywords) {

                if (input.contains(keyword)) {
                    System.out.println("KEYWORD:" + keyword);
                    break;
                }

                else {
                    System.out.println("KEYWORD not found");

                }
            }
            break;
        } while (input.equalsIgnoreCase("bye"));
        System.out.println("Have a good day!");

    }
}

我用sysout替换了if and else内部的一些东西。 我在输入中输入了天,并得到了以下结果。

Welcome 
What's on your mind?
> day
KEYWORD:day
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
KEYWORD not found
Have a good day!

此输出非常容易理解。 如果发现困难,请在下面评论您遇到的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM