首页 > 解决方案 > 跳过一些输入 - Java

问题描述

我正在做关于 Java 的小练习。我需要输入 3 部电影的三个详细信息(标题、类型和评级),然后让它们显示。

所以基本上我必须为每个私有数据成员编写适当的 getter 和 setter 方法,并且还应该为包含测试器/驱动程序类的应用程序编写适当的构造函数,该类创建 Movie 类的三个实例并将它们存储在一个数组中。测试程序类应该使用 for 循环来设置 Movie 对象的标题、流派和评级。还应该使用一个 for 循环,该循环应该遍历数组并显示数组中每个元素的标题、流派和评分,并为每个对象调用 playIt() 方法。

到目前为止,这是我的 movie.class 和 movieTester.class 的代码

public class Movie {

// Declare Private Variables

private String title;
private String genre;
private int rating;




// Default constructor
    public Movie() {

    }


    /// The constructors ///

    public Movie(String title,String genre, int rating) {
        this.title = title;
        this.genre = genre;
        this.rating = rating;

    }


    // Getter and setter methods

    public String getTitle() { // getTitle
        return title;
    }

    public void setTitle(String title) { // SetTitle
        this.title = title;
    }


    public String getGenre() { // GetGenre
        return genre;
    }

    public void setGenre(String genre) { // SetGenre
        this.genre = genre;
    }

    public int getRating() { // GetRating
        return rating;
    }

    public void setRating(int rating) { // SetRating
        this.rating = rating;
    }



public void playIt(){
     System.out.println("Playing the Movie");
    }

}

这是给 MovieTester.class

  import java.util.Scanner;

public class MovieTester {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in); //Create Scanner input


         // Populate using an array of Movie's

        Movie mymovie[] = new Movie[3];


        // Using for loop

         for (int i = 0; i < 3; i++) {
             Movie movie = new Movie();


            // Enter Details For Movie
            System.out.println("Please Enter The Title Of Movie: ");
            String title = input.nextLine();
            movie.setTitle(title);

            System.out.println("Please Enter The Genre Of Movie: ");
            String genre = input.nextLine();
            movie.setGenre(genre);

            System.out.println("Please Enter The Rating Of Movie: ");
            int ret  = Integer.parseInt(input.next());
            movie.setRating(ret);

            System.out.println();

            mymovie[i] = movie;
        }





        // Using  for  loop o traverse the.
        // array and display the title, genre and rating,
        // for each element of the array


        for (int i = 0; i < mymovie.length; i++) {
            Movie movie = mymovie[i];

            System.out.println("Title: " + movie.getTitle());
            System.out.println("Genre: " + movie.getGenre());
            System.out.println("Rating: " + movie.getRating());
            mymovie[i].playIt();
            System.out.println();
        }
    }



    }

当我运行它时,这就是我得到的:

    Please Enter The Title Of Movie: 
Harold and Kumar
Please Enter The Genre Of Movie: 
Comedy
Please Enter The Rating Of Movie: 
5

Please Enter The Title Of Movie: 
Please Enter The Genre Of Movie: 
Comedy
Please Enter The Rating Of Movie: 
4

Please Enter The Title Of Movie: 
Please Enter The Genre Of Movie: 
Action
Please Enter The Rating Of Movie: 
3

Title: Harold and Kumar
Genre: Comedy
Rating: 5
Playing the Movie

Title: 
Genre: Comedy
Rating: 4
Playing the Movie

Title: 
Genre: Action
Rating: 3
Playing the Movie

输出的问题是在输入第一个完整电影详细信息(标题、流派和评级)后。它跳过输入电影“标题”(第二和第三),只能输入类型和评级。

它可能与'for循环'有关。但想不通。有人可以告诉我代码有什么问题吗?

标签: javaeclipsefor-loopconstructorjava.util.scanner

解决方案


推荐阅读