java - For循环前进两个数字而不是一个

标签 java loops for-loop

当我输入第一个输入时,它会同时打印第二个和第三个。控制台:

Please enter the grade for course 1
A
Please enter the grade for course 2
Please enter the grade for course 3

代码:

import java.io.IOException;
public class MyGradeLoops {
public static void main(String[] args) throws IOException{
int grade;
for (int i=1; i<6; i++) {
    System.out.println("Please enter the grade for course " + i);
    grade = System.in.read();
    }
    System.out.println("Thank your for submitting your grades");
   }
  }

最佳答案

System.in.read(); 将从用户输入中读取下一个字节。当您键入一个数字并按 Enter 时,它将至少计为三个字节(另外两个字节对应于 \r\n 换行符)。

您可以简单地使用 Scanner 实例并使用 Scanner#nextInt() 读取整数。

Scanner in = new Scanner(System.in);
for (int i = 1; i < 6; i++) {
    System.out.println("Please enter the grade for course " + i);
    grade = in.nextInt();
}

如果 System.in.read() 是一项要求并且成绩作为字符串输入,这里有一种(有点古怪的)方法:

for (int i = 1; i < 6; i++) {
    String grade = "";
    System.out.println("Please enter the grade for course " + i);
    char c;
    while((c = (char) System.in.read()) != '\n') {
        grade += c;
    }
    System.out.println(grade);
}

关于java - For循环前进两个数字而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412175/

相关文章:

java - 加载数据源时出错

java - 谷歌开发人员地理图表和 DAO 对象

java - Java 集合中的静态方法需要澄清吗?

php - 使用 CLI 每秒运行一个 PHP 脚本

java - Java 中 for 循环末尾的额外分号概念有问题

java - Java 中的循环和条件

java - 找出 1,000,000 以内至少有一个 7 和 9 的所有正整数,但如何修复重复项?

Java,代号一 : Exporting and -most importantly- importing files between users

javascript - 获取按日期过滤的 JSON 数据并从中创建一个新数组

java - 如何在变量名中使用方法?