java-Declaring基于If语句的数组

Joh*_*ohn 0 java arrays if-statement

我想知道是否有任何方法可以声明一个不同大小的数组,具体取决于是否满足if语句条件.但是,在将此代码键入NetBeans之后:

if(winner == true)
    double data[][] = new double[16][5];
else
    double data[][] = new double[14][5];
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,指出:此处不允许变量声明.

为什么不允许这样做?有没有办法完成我想做的事情?蒂亚.

注意

正如在提供的答案中明确指出的那样,我在写这篇文章时没有考虑范围.我道歉.感谢所有提供有用解决方案和见解的人.

Swe*_*per 12

另一种解决方案是:

double data[][] = new double[winner ? 16 : 14][5];
Run Code Online (Sandbox Code Playgroud)

x ? a : b件事被称为"三元运算符".它评估aif是否x为true,否则b.


Ish*_*ark 5

你应该做 :

double data[][]; 
if(winner == true)  // or just --> if (winner)
    data = new double[16][5];
else
   data = new double[14][5];
Run Code Online (Sandbox Code Playgroud)

基本上,当你在if中声明它时,你只能在if中使用它.它的范围仅限于此.