我正在使用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);
}
}
}
答案 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': ");