带有if else条件的Java数组

时间:2020-07-20 14:50:03

标签: java arrays

我有4组不同的逻辑来为数组设置不同的多个值。 我已经尝试过了:

int[] numbers;

if(a) { numbers = {11, 22, 33, 44, -11, -22, 33, 44}; }

if(b) { numbers = {66, 33, 11, 00, 11, 22, 33, 44}; }

if(c) { numbers = {-11, -22, 33, 44, 66, 33, 11, 00}; }

我通过使用数组的索引一对一地设置值找到了很多答案,但是有没有像上面那样设置的有效简便方法?

2 个答案:

答案 0 :(得分:3)

首先,在第一个if之后使用else if,以便能够提早退出并避免以后的逻辑覆盖先前的设置值。其次,您需要在new int[]之前加上前缀,因为您没有在声明中对其进行初始化。

if(a) { numbers = new int[]{11, 22, 33, 44, -11, -22, 33, 44}; }
else if(b) { numbers = new int[]{66, 33, 11, 00, 11, 22, 33, 44}; }
else if(c) { numbers = new int[]{-11, -22, 33, 44, 66, 33, 11, 00}; }
else {
    //default value, e.g.
    numbers = new int[8];
}

您还可以使用三元运算符在声明中进行初始化,因此不需要在new int[]前面加上前缀,但是请注意,它可能不那么可读。

int[] numbers = a ? {11, 22, 33, 44, -11, -22, 33, 44} : 
       b ? {66, 33, 11, 00, 11, 22, 33, 44} :
       c ? {-11, -22, 33, 44, 66, 33, 11, 00} :
       /*default value*/ new int[8];

答案 1 :(得分:2)

if-else-if表达式:

int[] numbers =
    a ? {11, 22, 33, 44, -11, -22, 33, 44}
    : b ? {66, 33, 11, 00, 11, 22, 33, 44}
    : {-11, -22, 33, 44, 66, 33, 11, 00};