当我输入第一个输入时,它会同时打印第二个和第三个。控制台:
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/