gpt4 book ai didi

java - 使用一台扫描仪在运行时显示可以同时保存和接受输入的多行

转载 作者:搜寻专家 更新时间:2023-11-01 03:46:19 25 4
gpt4 key购买 nike

我正在使用do while 循环

public class Program {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float grades;
int subj,i = 1;
System.out.printf(" Enter how many subjects: ");
subj = input.nextInt();
do {
System.out.printf("\nEnter Grade [%d]: ", i);
i++;
}while(i <= subj);
grades = input.nextInt();

}
}

输出

    Enter how many subjects: 5

Enter Grade [1]: can't go back here
Enter Grade [2]: can't go back here
Enter Grade [3]: can't go back here
Enter Grade [4]: can't go back here
Enter Grade [5]: I'm automatically here right after I run the project

新不是借口,所以我做了一项研究,但大多数都是一种方式。

我想在运行时显示可以同时保存和接受输入的多行,这就像将行转换为可以在运行时编辑或更改的字段。

编辑[1]:IDE是NetBeans 8.2

编辑[2]:我已经有了这个的工作程序(这是一种方式),它只是我的想法,我有点想升级它。

最佳答案

问题不是它跳过了读取,而是它在循环期间没有读取。如果您想在每次循环运行时都从输入中读取,则需要将 next 放入循环中。最重要的是,如果您只有一个包含成绩的 float ,那么只要收到新成绩,该变量就会被覆盖。这可以通过添加一个 float 数组来代替标准 float 来解决。代码看起来像这样:

public class Program {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int subj,i = 0;
System.out.printf(" Enter how many subjects: ");
subj = input.nextInt();
float[] grades = new float[subj];
do {
System.out.printf("\nEnter Grade [%d]: ", i+1);
grades[i] = input.nextInt();
i++;
}while(i < subj);
}
}

(对此进行了一些其他编辑)

因此,这是它现在逐行执行的操作。该方法的前两行只是实例化要在方法中使用的变量。 i 设置为 0,以便更轻松地编辑数组。接下来的两个是获取您输入的主题数。相当标准。下一行,设置 grades 是为许多科目创建一个新的 float 数组。然后,循环运行。在循环中,第一行是打印,i+1 对应主题号而不是数组的索引。之后的行会将输入的成绩放入数组中的索引 i 处,之后的行递增 i。之后,循环检查检查 i 的索引是否小于主题数。这是有效的,因为 i 从 0 开始,当它是 5 时,它只是插入列表中的第 4 个元素,这是最后一个元素。

注意:数组从 0 开始,这就是为什么 i 在 0 实例化,以及为什么检查 i 的其他实例是变了。他们正在补偿这种变化。

关于java - 使用一台扫描仪在运行时显示可以同时保存和接受输入的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52245970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com