为什么java不识别变量?

时间:2017-08-20 15:52:22

标签: java

有谁知道为什么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);

    }

}

6 个答案:

答案 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;