数组索引和同一行的增量

时间:2011-08-28 00:25:33

标签: java

快速基本问题,android / java如何处理以下代码行:

int[] someArray = new int[5];
int index = 0;
int result;

result = someArray[index++];

将哪个索引传递给结果?它会先增加索引然后传递给someArray [1]吗?或者它会将index的原始值传递给someArray [0],然后递增索引?

5 个答案:

答案 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],在进入下一行后,你的指数会增加。