有谁知道为什么java不理解变量"增量"? 我的任务是找出用户多年的服务和薪水。之后,我将为每个人分配一个增量。但是,当我想打印变量" increment"时,java不会识别它。我可以知道为什么吗?
import javax.swing.JOptionPane;
public class Q4 {
public static void main(String[] args) {
int increment;
String yearsString = JOptionPane.showInputDialog(null,
"Please enter your years of service");
String salaryString = JOptionPane.showInputDialog(null,
"Please enter your salary");
int years = Integer.parseInt(yearsString);
double salary = Double.parseDouble(salaryString);
if(years < 10) {
if(salary < 1000.0) {
increment = 100;
}
else if (salary< 2000.0) {
increment = 200;
}
else {
increment = 300;
}
}
else if (years > 10) {
if(salary<1000) {
increment = 200;
}
else if (salary < 2000) {
increment = 300;
}
else {
increment = 400;
}
}
JOptionPane.showMessageDialog(null,
"Your increment is "+increment);
}
}
答案 0 :(得分:5)
问题不在于变量的“识别”,而在于它的声明
如果编译器认为它可能没有被赋值,则不能使用局部变量。
在实际代码中,increment
可能不会在您为某些特定条件语句指定值时进行评估。
因此在声明中使用默认值<{1}}:
increment
答案 1 :(得分:3)
年== 10 未设置 module.exports.UploadImage = function (req, res, next) {
// Handle request as multipart
if (!req.files)
return res.status(400).send('No files were uploaded.');
var sampleFile = req.files.uploadedFile;
//Here I need to have the buffer.
var chunks = []
req.on('data', function (chunk) {
// reads chunks of data in Buffer
console.log(chunk) // Prints <Buffer 8a 83 ef ... >
chunks.push(chunk)
})
res.send('Done!');
}
的值。正确处理这种情况。
也许你应该使用 increment
而不是 else
答案 2 :(得分:3)
我怀疑这可能是因为变量increment
从未初始化。您可以尝试将声明更改为:
int increment = 0;
答案 3 :(得分:2)
您的代码存在编译问题。增量变量未初始化。添加默认值以增加。
int increment = defaultValue; // may be 0 or 100.
如果年数= 10,那么你就没有处理条件。
答案 4 :(得分:1)
您需要使用值初始化变量。
例如:
int increment = 0;
答案 5 :(得分:0)
使用默认值声明的值增量。
int increment;
必须包含默认值,例如int increment = 0;