【发布时间】:2020-09-12 20:47:57
【问题描述】:
我的作业任务是创建一个程序,该程序接受 0-100 之间的数字输入并返回一个字母和 +/-(如果合适)。我们将使用嵌套的 if 语句来完成此操作。我试图创建一个外部 if 语句,该语句将返回一个字母等级,然后是嵌套的 if 语句,该语句将返回 +/- 部分。
我收到的输出从 6543 到 00 不等。我在下面复制了我的代码。谁能指出我正确的方向?我觉得这有点乱。
import java.util.Scanner;
import java.lang.Math;
public class Grade {
public static void main (String [] args) {
Scanner scan = new Scanner (System.in);
//Prompt user to enter grade
System.out.println("Please enter your grade ");
int grade = scan.nextInt();
byte grade1 = (0);
byte note = (0);
//Determine letter and +/-
if ( grade <= 100 && grade >= 90 ) {
grade1 = 'A';
if (grade <= 100 && grade >= 96) {
note = '+';
}
else if (grade <= 94 && grade >= 90) {
note = '-';
}
}
else if ( grade <= 80 && grade >= 89 ) {
grade1 = 'B';
if (grade <= 89 && grade >= 86) {
note = '+';
}
else if (grade <= 84 && grade >= 80) {
note = '-';
}
}
else if ( grade <= 70 && grade >= 79 ) {
grade1 = 'C';
if (grade <= 79 && grade >= 76) {
note = '+';
}
else if (grade <= 74 && grade >= 70) {
note = '-';
}
}
else if ( grade <= 60 && grade >= 69 ) {
grade1 = 'D';
if (grade <= 69 && grade >= 66) {
note = '+';
}
else if (grade <= 64 && grade >= 60) {
note = '-';
}
}
else if ( grade <= 59 ) {
grade1 = 'F';
}
//Print out grade
System.out.println("You have a " + grade1 + note + " in the class.");
// End program
scan.close();
System.exit(0);
}
}
【问题讨论】:
-
为什么
grade1和note的类型是byte而不是char? -
byte是整数类型,即表示整数。因此,如果我们打印一个byte,它就会被打印为一个数字。您可能想要的是char而不是byte。旁注:我们也可以使用chars 作为数字,然后我们得到字符的unicode UTF-8 数值。