有了这个,我试图找出一种方法,以便让程序从我的“grades.txt”文本文件中读取,并在用户的输入匹配时逐行打印。 例如,如果输入的成绩是“93”,它将从文本文件中打印出“A”。
我尝试过 fileByteStream
、BufferedReader
、readAllLines
和 Scanner
。我最终确实能够打印 "grades.txt"
但不能打印文件的实际内容。
这是我的代码:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Scanner;
public class Main {
private static Object Paths;
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
Scanner txtscanner = new Scanner(new File("grades.txt"));
//grades {0.0, 60.0, 70.0, 77.0, 80.0, 83.0, 87.0, 90.0, 93.0, 100.0};
//letter grades {"F", "D", "C", "C+", "B-", "B", "B+", "A-", "A"};
while (txtscanner.hasNextLine()) {
System.out.println("What is your grade?");
int grade = scnr.nextInt();
if (grade > 100) {
System.out.println("Invalid input");
System.out.println("Please enter another number");
}
else if ((grade >= 93.00 && grade < 100)) {
String line9 = Files.readAllLines(Paths.get("file.txt")).get(9);
System.out.println(9);
break;
}
else if (grade >= 90.0 && grade < 93) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 87.0 && grade < 90) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 83.0 && grade < 87) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 80 && grade < 83) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 77 && grade < 80) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 70 && grade < 77) {
System.out.print("Your grade is ");
break;
}
else if (grade >= 60 && grade < 70) {
System.out.print("Your grade is ");
break;
}
else if (grade <= 59 && grade > 0) {
System.out.print("Your grade is ");
break;// write your code here
}
}
}
}
最佳答案
你不需要用中断来结束 if 子句,完成的花括号会处理这个问题。您添加的中断导致它从 while 循环中弹出。由于 if .. else if .. else 的每条路径上都有一个,因此您将永远不会处理超过第一行的内容。
关于java - 让 Java 能够从文本文件中读取一行并打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59924246/