我有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}; }
我通过使用数组的索引一对一地设置值找到了很多答案,但是有没有像上面那样设置的有效简便方法?
答案 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};