java - 有没有办法让 System.out.print 在循环中打印一次不同的东西?
问题描述
我对编码非常陌生,我的一个项目是创建一个程序,该程序使用 while 循环来询问用户的测试成绩并找到平均值。我遇到的问题是,当它要求一年级时,我的老师希望它也打印出“完成后输入 -1”以及一年级。他希望结果看起来像这样。
Test grade1? (Enter -1 when you are finished): random grade
Test grade2? random grade
Test Grade3? random grade
The average of your test grades is: average of all grades
目前,我将一年级作为单独的代码行询问用户并且它不在循环中。有没有办法将它组合到循环中,并且仍然要求“完成后输入 -1”,但仅针对第一个测试成绩?
Ps 抱歉,如果我的代码非常混乱,我仍然不是很擅长。
import java.util.Scanner;
public class U4D3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Test grade 1? (Enter -1 when you're finished): ");
int grade1 = scan.nextInt();
int i = 2;
int testCounter = 1;
int sum = 0;
boolean flag = true;
while(flag) {
System.out.print("Test grade " + i + "? ");
int grades = scan.nextInt();
if (grades == -1){
flag = false;
break;
}
sum = grade1 + grades;
grade1 = sum;
i++;
testCounter++;
}
System.out.println("The averages of your test grades is: " + (double)sum/testCounter);
}
}
解决方案
您可以使用if
语句检查它是否是第一次测试,如果是这种情况,则显示附加消息。您也可以摆脱i
变量并testCounter
在其位置使用。您也不需要flag
,只需使用break
就足够了。在循环结束时,testCounter
将关闭 1,因此在计算平均值时必须减 1 ( (testCounter - 1)
)。
import java.util.Scanner;
public class U4D3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int testCounter = 1;
int sum = 0;
while (true) {
System.out.print("Test grade " + testCounter + "? ");
if (testCounter == 1)
System.out.print("(Enter -1 when you're finished): ");
int grade = scan.nextInt();
if (grade == -1) {
break;
}
sum += grade;
testCounter++;
}
System.out.println("The averages of your test grades is: " + (double) sum / (testCounter - 1));
}
}
推荐阅读
- python - 第三方包的 mock.patch() 的 Pytest 路径
- django - Django - 将二进制流转换为图像
- javascript - 使用钩子时如何为 panResponder 设置偏移量?
- java - 视图和投影矩阵不起作用
- python - pyodbc.ProgrammingError: ("TVP 的行必须是序列对象。", 'HY000')
- java - 我在 Android Studio 或 Simple Console 窗口中在哪里制作项目?
- css - Material-UI 水平菜单(移动友好)
- java - java.util.NoSuchElementException:在 java.base/java.util.Scanner.nextLine(Scanner.java:1651) 处找不到行
- java - 生成 N , 3 位唯一随机整数,其中所有数字都是唯一的
- react-redux - 如何将 props 从父组件传递给子组件并使用 react-redux 在子组件中接收它