次の Java コードがあります。
import java.util.Scanner;
public class C2F_F2C {
public static void main(String[] args) {
boolean isNotValid = false;
double toConvert;
do {
System.out.print("What do you want to convert from Celsius to Fahrenheit? ");
Scanner in = new Scanner(System.in);
String toConvertString = in.nextLine();
isNotValid = false;
try {
toConvert = Double.parseDouble(toConvertString);
}
catch (java.lang.NumberFormatException e) {
System.out.println("Error: Not a number");
isNotValid = true;
}
} while (isNotValid);
double inCelsius = toCelsius(toConvert);
System.out.println("The value " + toConvert + " in Celsius is " + inCelsius);
}
public static double toCelsius( double fahrenheit ) {
double celsius = (fahrenheit -32)*(5/9);
return celsius;
}
}
ただし、実行すると、次のエラーがスローされます。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The local variable toConvert may not have been initialized
The local variable toConvert may not have been initialized
at C2F_F2C.main(C2F_F2C.java:24)
do..while ループの前に変数を初期化し、try..catch ループで値を設定しました。変数が設定されていないようです。これがかなり基本的な質問である場合は申し訳ありませんが、理解できないようです。