电影列表分类(Java)

时间:2014-11-05 02:49:51

标签: java syntax

我是这个Java的总菜鸟,去年我对编程的介绍我喜欢它,但我仍然试图理解它。我之前去过这个网站,我遇到过学习Ruby on Rails的问题。很棒的网站!

关于我的问题......我正在上课,我正试图找出可能导致这个问题的原因。不要求别人为我做这项工作......我只是想知道为什么会这样。我很难过。

在我进入"戏剧类别之前,一切似乎都能正常运作..它也会出现恐怖电影类别。我最初为if / else设置了它,但后来net-beans说服我使用switch方法。如果我没有编译它。可能使用另一种方法/声明的任何建议?

import java.util.*;

public class MovieList {


    public static void main(String[] args)  

    {
        System.out.println("Welcome to the Movie List Application");
        System.out.println();
        System.out.println("There are 100 movie in the list");
        String choice = "y";
        Scanner sc = new Scanner(System.in);

        ArrayList<String> animated = new ArrayList<>();
         animated.add("Robot Chicken");
         animated.add("Family Guy");
         animated.add("American Dad");
         animated.add("Bob's Burgers");
         animated.add("The Simpsons");


         ArrayList<String>drama = new ArrayList<>();
         drama.add("John Q");
         drama.add("The Green Mile");
         drama.add("The Breakfast Club");
         drama.add("The Shawshank Redemption");
         drama.add("Braveheart");

         ArrayList<String> horror = new ArrayList<>();
         drama.add("Scream");
         drama.add("Carrie");
         drama.add("Insideous");
         drama.add("Insideous");
         drama.add("Sinister");

         ArrayList<String> scifi = new ArrayList<>();
         scifi.add("The Book of Eli");
         scifi.add("Daybreakers");
         scifi.add("Hunter Prey");
         scifi.add("Predators");
         scifi.add("Skyline");

        while(choice.equalsIgnoreCase("y"))
            {
            System.out.print("What category are you interested in?");

                        String movielist = sc.nextLine();
                    switch (movielist) {
                        case "animated":
                            System.out.println(animated);
                            break;
                        case "drama":
                            System.out.println(drama);
                            break;
                        case "horror":
                            System.out.println(horror);
                            break;
                        case "scifi":
                            System.out.println(scifi);
                            break;
                    }

            System.out.print("Continue? y/n): ");
            choice = sc.next();
            }
                    }


    }

1 个答案:

答案 0 :(得分:4)

这是因为你在戏剧阵列列表中添加了恐怖片。改变这个:

ArrayList<String> horror = new ArrayList<>();
         drama.add("Scream");
         drama.add("Carrie");
         drama.add("Insideous");
         drama.add("Insideous");
         drama.add("Sinister");

对此:

   ArrayList<String> horror = new ArrayList<>();
     horror.add("Scream");
     horror.add("Carrie");
     horror.add("Insideous");
     horror.add("Insideous");
     horror.add("Sinister");

如果你明确地创建这样的列表,你也可以这样做:

编辑:哎呀抱歉,因为Obicere说ArrayList类没有那个构造函数。您使用ArrayList而不是List?

的任何原因