java - 错误: variable might not have been initialized

标签 java

收到错误:

Pay.java:81: error: variable hourlyWage might not have been initialized JOptionPane.showMessageDialog(null, hourlyWage);

以下代码。声明了 double hourlyWage,这些语句位于 main 参数内。没看到我错过了什么,是吗?

if(skillInt == 1){
    hourlyWage = 17.00;
} else if(skillInt == 2){
    hourlyWage = 20.00;
} else if(skillInt == 3){
    hourlyWage = 22.00;
}
JOptionPane.showMessageDialog(null, hourlyWage);

最佳答案

消息指出,也许(如果 skillInt 不在 {1, 2, 3} 中)您使用未初始化的变量 (hourlyWage)。首先用一些值初始化它:

hourlyWage = 0;
if (skillInt == 1)
    //...

或添加else block :

//...
else if (skillInt == 3)
    hourlyWage = 22.0;
else
    hourlyWage = 0;

如果 skillInt 的唯一可能值是 {1, 2, 3},那么您可能想移动第三个 if阻止仅 else :

//...
else {
    hourlyWage = 22.0;
}

顺便说一句,更漂亮的方法是 switch运算符:

switch (skillInt) {
    case 1 : hourlyWage = 17.0;
        break;
    case 2 : hourlyWage = 20.0;
        break;
    case 3 : hourlyWage = 12.0;
        break;
    default : hourlyWage = Double.POSITIVE_INFINITY;
}

关于java - 错误: variable might not have been initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474957/

相关文章:

java - 如何从命令行参数获取输入

java - 如何比较两个不同大小的数组?

java - 关于 String 和返回对象的基本类问题

java - 在方法完成之前未写入数据库的 JPA 更改

Java 内存模型 - 令人惊讶的行为

java - 使用 DynamicReport 对象加载 jrxml 文件时出现 NullPointer

java - XMLStreamReader 跳过没有属性的元素

java - 如何检查java字符列表除了C或N之外还有其他值

java - BitSet valueOf 的作用是什么?

Java hashmap int 不能被取消引用