java - 跳过一些输入 - 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循环'有关。但想不通。有人可以告诉我代码有什么问题吗?
解决方案
推荐阅读
- python - 如何计算巴拉圭国家税号的验证码 (calcular digito verificador del RUC)
- google-api - Classroom API Invitations.list 不返回 userId 字段
- angular - 儿童路线在功能模块中不起作用
- python - Tensorflow 2.0 Hugging Face Transformers,TFBertForSequenceClassification,推理中的意外输出维度
- python - 使用 pastebin 作为存储登录数据的方法
- amazon-web-services - Redshift COPY 导入中止
- javascript - npm 许可证检查器和窗口
- r - 问:如何使用 ggplot 组合两种类型的线条?
- django - 使用 for 或 if 在 django 中的有边界和无边界的帖子
- python - tkinter gpio 状态问题.. 我怎样才能让它更新标签以显示最新状态