java - 每次循环中的条件正确时,程序都会打印该语句
问题描述
我试图让用户输入他们的成绩,如果成绩高于 90,则将它们打印在一行中,低于 65 的将它们打印在一行中,如果在 65 到 90 之间将它们打印在一行中。但是,假设每次有一个90以上的成绩,它会打印“90以上”,然后当我只希望它打印一次声明时,为每个成绩评分。我知道我在条件内有它,所以每次满足条件时都会打印它,但是我应该把那行代码放在哪里,这样这个问题就不会发生。
import java.util.Scanner;
import java.util.ArrayList;
public class StudentApplication {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("How many courses did you take during the school year? : ");
int takeCoursesNum = sc.nextInt();
int grades[] = new int[takeCoursesNum]; // array number start "0" ~ ex) { [0], [1], [2] }
for (int i = 0; i < takeCoursesNum; i++) {
System.out.print("\nEnter your grade for that course : ");
int grade = sc.nextInt();
grades[i] = grade;
}
for (int i = 0; i < takeCoursesNum; i++) {
if (grades[i] < 65) {
System.out.println("\nGrades below 65 : " + grades[i]);// System.out.println : auto change line. no need \n.
}
if (grades[i] > 90) {
System.out.println("Grades above 90 : " + grades[i]);
}
if (grades[i] > 65 && grades[i]<90) {
System.out.println("Grades between 65 and 90: " + grades[i]);
}
}
}
}
解决方案
您必须将数组单独循环三次,并且将标签 ( "Grades below 65"
) 排除在循环之外,因此它只会打印一次语句。最后使用System.out.print
代替,System.out.println
所以成绩将打印在同一行。
System.out.print("\nGrades below 65 : ");
for (int i = 0; i < takeCoursesNum; i++) {
if (grades[i] < 65) {
System.out.print(grades[i]);
}
}
System.out.print("\nGrades below 90 : ");
for (int i = 0; i < takeCoursesNum; i++) {
if (grades[i] > 90) {
System.out.print(grades[i]);
}
}
System.out.print("\nGrades between 65 and 90: ");
for (int i = 0; i < takeCoursesNum; i++) {
if (grades[i] > 65 && grades[i]<90) {
System.out.print(grades[i]);
}
}
推荐阅读
- python - 如何将 2D numpy 数组转换为 One Hot Encoding?
- php - 我们可以使用单个 PHP 文件连接同一主机上可用的 mongodb 服务器和 mysql 服务器吗?
- android - IllegalStateException 出现在游戏控制台上
- javascript - 什么是“The”原型?
- c# - 路径不适用于 Blazor 中允许的 IdentityServer CORS 端点,但适用于 Postman
- python - “列表”对象没有属性“模型”
- angularjs - Spring Boot Azure AD Bearer Header Authentication(签名的 JWT 被拒绝:无效的签名)
- asp.net-mvc - api 在 URL“api/AuthenticationAPI/logout”中出现两次
- driver - 编译 DPDK 而不编译/安装所有驱动程序
- apache-kafka - Kafka Streams - 具有相同应用程序 ID 的多个线程或多个实例