Java switch语句之后的初始化
为什么它说“decimalNum”可能还没有初始化,尽管它在switch语句中的一种情况下已经初始化了Java switch语句之后的初始化,java,eclipse,initialization,switch-statement,Java,Eclipse,Initialization,Switch Statement,为什么它说“decimalNum”可能还没有初始化,尽管它在switch语句中的一种情况下已经初始化了 Scanner s = new Scanner(System.in); char romeDigit; int decimalNum; boolean inputValid = true; System.out.println("Please enter a rome digit: "); romeDigit = s.next().cha
Scanner s = new Scanner(System.in);
char romeDigit;
int decimalNum;
boolean inputValid = true;
System.out.println("Please enter a rome digit: ");
romeDigit = s.next().charAt(0);
switch (romeDigit) {
case 'i':
case 'I':
decimalNum = 1;
break;
case 'v':
case 'V':
decimalNum = 5;
break;
case 'x':
case 'X':
decimalNum = 10;
break;
default:
inputValid = false;
break;
}
if (inputValid)
System.out.println**("Num is" + decimalNum);**
else
System.out.println("Invalid input!");
在某些情况下,仅初始化
decimalNum
是不够的。它必须在所有情况下初始化,包括默认情况
default:
inputValid = false;
decimalNum = -1; // it doesn't really matter what you put here, since
// you are using a flag to determine if the value is valid
break;
或者只需添加int decimalNum=0;在这里声明变量以避免错误