我有一個基本的二次公式程序,但我修改了開始以結束程序,如果任何值以外的雙輸入。但是,因爲我已經這樣做了,所以我似乎無法使用程序中任何其他位置輸入的值。以下是前幾行:在Java中,如何使用程序中其他位置的try/catch塊內初始化的變量?
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的值,然後進行二次方程式,重新調整被輸入任何方程的根。但是,由於a的值是在try部分內部定義的,編譯器告訴我a沒有被初始化。我該如何解決?
編輯:我想使用用戶在程序中輸入的數據(存儲爲doubleString) - 但是一個數字。我的直接問題是編譯器錯誤,但是有什麼方法可以使用輸入的信息,即使它在try塊內?因爲當我試圖在塊的外面等同double a到double doubleString時,它說doubleString不存在。
給'a'一個默認初始值;考慮是否有例外。沒有默認值,「a」根本沒有價值。 –
@ElliottFrisch我不認爲這是OP的要求。這是掃描儀的輸入,無法在任何地方使用。 @Caroline'String doubleString = reads.nextLine();'不會拋出異常,因此不必在try塊內部。這是可能拋出異常的解析。 –
@RahulSharma *但是,由於a的值是在try部分內部定義的,編譯器告訴我a沒有被初始化。如何解決這個問題?* –