java - 在java中为下一个while循环存储值的while循环
问题描述
我是Java的初学者。我有一个任务要求我从用户那里获取 3 个输入,然后同时输出 3 个。这是我的代码。我只有 1 个输出。假设看起来像这样:
任何人都可以帮忙,谢谢!
这是我的代码
Scanner sc = new Scanner(System.in);
int i = 0;
String classname = " ";
String rating = " ";
int plus = 0;
while(i < 3){
System.out.print("What class are you rating? ");
classname = sc.nextLine();
System.out.print("How many plus signs does " + classname +" get? ");
rating = sc.nextLine();
plus = Integer.parseInt(rating);
i++;
}
System.out.print(classname + ": ");
while (plus > 0){
System.out.print("+");
plus --;
}
System.out.println();
解决方案
我要做的第一件事是创建一个Course
POJO(普通旧 Java 对象)。它应该有两个字段,name
和rating
。我会toString
在那个Course
POJO 中实现显示逻辑。像,
public class Course {
private String name;
private int rating;
public Course(String name, int rating) {
this.name = name;
this.rating = rating;
}
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < rating; i++) {
sb.append("+");
}
return String.format("%s: %s", name, sb);
}
}
然后,您的main
方法只需Course
在一个循环中填充三个实例的单个数组,并在第二个循环中显示它们。像,
Scanner sc = new Scanner(System.in);
Course[] courses = new Course[3];
int i = 0;
while (i < courses.length) {
System.out.print("What class are you rating? ");
String className = sc.nextLine();
System.out.printf("How many plus signs does %s get? ", className);
int classRating = Integer.parseInt(sc.nextLine());
courses[i] = new Course(className, classRating);
i++;
}
i = 0;
while (i < courses.length) {
System.out.println(courses[i]);
i++;
}
推荐阅读
- java - 如何以最小顺序从反馈列表中找到每个用户给出的最新反馈?
- cassandra - 在 cassandra 中禁用读取修复
- ruby-on-rails - Rails/React/Yarn:如何从应用程序的根目录运行“yarn start”
- r - 避免嵌套循环但使用 (l)apply 迭代 2 个值?
- c# - 从单独的类中查看 ThreadStatic 变量
- scala - Spark Structured Streaming:在单独的工作线程上运行 Kafka 消费者
- excel - VBA IE 自动化 - 无法单击带有事件侦听器 mouseenter 和 mouseleave 的按钮
- java - 为什么 FetchType.Eager 阻止双向映射中的 org.hibernate.TransientObjectException 而 CascadeType.ALL 没有效果?
- c# - 连接字符串在 Windows 10 上工作正常,但在 Windows 7 上不行
- c++ - 如何在boost进程间构造向量的向量