私は基本的な二次式プログラムを持っていますが、double 以外の値が入力された場合にプログラムを終了するように変更しました。ただし、これを行ったため、プログラムの他の場所で入力された値を使用できないようです。最初の数行は次のとおりです。
import java.util.Scanner;
public class QuadraticFormula
{
public static void main(String[] args)
{
double a, b, c;
Scanner reads = new Scanner(System.in);
System.out.println("General equation: \"ax^2 + bx + c\"");
System.out.print("Enter value of \"a\": ");
try {
String doubleString = reads.nextLine();
a = Double.parseDouble(doubleString);
}
catch (Exception e) {
System.out.println("Invalid Data Type. Please enter a number");
}
プログラムの残りの部分は、b と c の値を要求し、2 次方程式を実行して、入力された方程式の根を返します。ただし、a の値は try セクション内で定義されているため、コンパイラは a が初期化されていないと通知します。これを修正するにはどうすればよいですか?
編集: プログラムでユーザーが入力したデータ (doubleString として保存) を使用したいのですが、数値です。当面の問題はコンパイルエラーなのですが、入力した情報がtryブロック内であってもそれを利用する方法はありますか? ブロックの外側で double a を double doubleString と同一視しようとすると、 doubleString が存在しないと言われました。