快速基本问题,android / java如何处理以下代码行:
int[] someArray = new int[5];
int index = 0;
int result;
result = someArray[index++];
将哪个索引传递给结果?它会先增加索引然后传递给someArray [1]吗?或者它会将index的原始值传递给someArray [0],然后递增索引?
答案 0 :(得分:11)
来自http://download.oracle.com/javase/tutorial/java/nutsandbolts/op1.html:
代码结果++;和++结果;两个结果都会以一个增加结果。唯一的区别是前缀版本(++结果)评估为递增值,而后缀版本(结果++)评估为原始值。
所以你会得到someArray[0]
。
答案 1 :(得分:4)
在Java和类似语言中,使用index++
仅在计算表达式后递增值。如果要在使用变量之前增加,请使用++index
。
在这种情况下,它将使用index
的原始值来获取result
,然后将其值增加到1.
答案 2 :(得分:4)
index++
返回index
,然后递增1.因此它会result = someArray[0]
,然后将index
设置为1.
相反,++index
将执行增量,然后传递递增的值。因此,如果您希望在上面的代码中将result
设置为someArray[1]
,则可以使用++index
。
正如其他人所说,请不要使用这种语法。相反,请写下
index++;
result = someArray[index];
答案 3 :(得分:3)
它将通过someArray[0]
,然后递增index
它不依赖于android,一般规则是:
index ++表示计算索引然后递增它,而++ index是递增然后计算
答案 4 :(得分:1)
1。)避免做这种事情,实际上我会通过代码审查我要求人们永远不要这样做。
不是专门使用++,而是你在评估其他内容时所做的事实。通常,编译器不会花费任何额外费用将该增量作为单独的语句,并将其内联,这意味着下一个人必须花费一秒钟并自己评估增量。
我知道这是次要的,而且有点挑剔,但这样的事情在代码审查期间会花费额外的时间,在扫描时很容易错过等等。除了一些额外的击键外,它还可以节省你的时间,与代码进行比较时CLO和可读性不值得IMO。
2)你会得到someArray [0],在进入下一行后,你的指数会增加。