变量是未使用的一个实例但不是另一个实例

时间:2015-05-22 17:29:40

标签: java string swing variables

我正在使用JOptionPane而不是Scanner编写二次公式。其中一个变量(第12行和第17行,userInput)被标记为未声明,从而产生运行时错误。其他迭代似乎没有这个问题。我是一名初学者,但我已经尝试过使用我所掌握的资源而运气不佳。谁能看到我错在哪里?

/*

*/
package a3main2;

import javax.swing.JOptionPane;

public class A3main2 
{
    public static void main(String[] args) 
    {
        String userInput;

        JOptionPane.showMessageDialog(null, "Hooray for quadratic fun!");
        JOptionPane.showInputDialog(null,"Enter the value for 'a': ");
        Double a = Double.parseDouble(userInput);
        JOptionPane.showInputDialog(null,"Enter the value for 'b': ");
        Double b = Double.parseDouble(userInput);
        JOptionPane.showInputDialog(null,"Enter the value for 'c': ");
        Double c = Double.parseDouble(userInput);

        Double discriminant = Math.sqrt((Math.pow(b , b))- (4 * a * c));
        Double part1 = ((-(b)) / (2 * a));
        Double x = ((-(b)) + Math.sqrt(discriminant) / (2 * a));
        Double y = ((-(b)) - Math.sqrt(discriminant) / (2 * a));

        if (discriminant < 0)
        {
            JOptionPane.showMessageDialog(null, "The two roots are " + x + "i" + 
                    " and " + y + "i.");
        }          
        else if (discriminant > 0)
        {
            JOptionPane.showMessageDialog(null, "There are two roots: " + x + 
                    " and " + y + ".");
        }
        else if (discriminant == 0)
        {
            JOptionPane.showMessageDialog(null, "There is only one root: " + x + 
                    ".");
        }
        else if (a == 0)
        {
            JOptionPane.showMessageDialog(null, "There is only one root: " + part1 
            + ".");
        }
        System.exit(0);
        }

    }
}

3 个答案:

答案 0 :(得分:3)

你需要做

userInput = JOptionPane.showInputDialog(null,"Enter the value for 'a': ");
Double a = Double.parseDouble(userInput);  

在输入输入的所有不同情况下。

答案 1 :(得分:0)

在方法中声明的所有变量都需要先初始化才能使用它们,因为它们没有默认值(如类成员)。

答案 2 :(得分:0)

您的变量userInput保持为空。

您应该将用户输入保存在userInput变量中,请尝试:

userInput = JOptionPane.showInputDialog(null,"Enter the value for 'a': ");