首页 > 解决方案 > 在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();

标签: javaloopswhile-loop

解决方案


我要做的第一件事是创建一个CoursePOJO(普通旧 Java 对象)。它应该有两个字段,namerating。我会toString在那个CoursePOJO 中实现显示逻辑。像,

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++;
}

推荐阅读