第一个;我是编程新手......
我想要做的是有一个简单的程序,根据你的分数计算你的成绩,这就是我现在所拥有的:
class Grade {
public static void main(String[]args){
char grade;
int marks = 92;
if(marks<60)
grade = 'F' ;
else if(marks>61 && marks<69)
grade = 'D';
else if(marks>70 && marks<79)
grade = 'C';
else if(marks>80 && marks<89)
grade = 'B';
else if(marks>90 && marks<99)
grade = 'A';
else
System.out.println("Bogus Grade");
System.out.println("Your grade is " + grade);
}
}
(目前我只是在代码中指定成绩,稍后会处理用户输入)
尝试编译代码时出现此错误:
Grade.Java:30: error: variable grade might not have been initialized
System.out.println("Your grade is" + grade);
^
答案 0 :(得分:3)
因为可以通过所有案例并且没有设定成绩。
在开始时将值设置为成绩:
char grade = 'Z';
同时确保所有案例都得到妥善处理,并始终设置成绩。在最后的其他内容中,grade
未被修改。你可以这样做:
else {
System.out.println("Bogus Grade");
grade = 'Z';
}
,永远不会考虑等于60,70,80,90和100的标记值。您应该将if行更改为:
else if(marks>=60 && marks<69)
...
else if(marks>=70 && marks<79)
...
else if(marks>=80 && marks<89)
...
else if(marks>=90 && marks<=100)
...
else {
...
}
答案 1 :(得分:2)
有些情况grade
未初始化。如果grade
是101
,该怎么办?如果是-1
怎么办?在这种情况下,else
块不会初始化grade
,并且Java不会允许在使用本地变量之前未初始化它的可能情况。
您必须显式初始化它,因此在声明它时将其初始化为某种东西。
char grade = 'Z';
最后,只有在'Z'
:
if (grade != 'Z') {
System.out.println("Your grade is " + grade);
}
答案 2 :(得分:0)
将char grade = '0';
放在开头。
也使用括号,因为你使用了很多if语句。一段时间后,它们会变得非常混乱。
答案 3 :(得分:0)
默认情况下不会初始化局部变量,因此您必须为它们提供初始值。
char grade = 'Z';
仅当您在代码中找到变量无法获得值的点时才适用。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html