Java i和x2B之间的差异+;而我+;数组计数为1
考虑:Java i和x2B之间的差异+;而我+;数组计数为1,java,increment,post-increment,Java,Increment,Post Increment,考虑: int[] aryNums=new int[5]; for (int i=0; i<=5; i++) { aryNums[i] = i++; System.out.println(aryNums[i]); } 我得到数组中的值{1,2,3,4,5}。这里i++和i+1之间的区别是什么?在第一个循环中,您将在循环内部以及部分循环更新中递增i。在第二种情况下,调用i+1时只需创建一个新的整数,而不影响存储在i中的值 表达式i++更新存储在i中的值,而表达式i+1返回
int[] aryNums=new int[5];
for (int i=0; i<=5; i++)
{
aryNums[i] = i++;
System.out.println(aryNums[i]);
}
我得到数组中的值{1,2,3,4,5}。这里i++和i+1之间的区别是什么?在第一个循环中,您将在循环内部以及部分循环更新中递增
i
。在第二种情况下,调用i+1
时只需创建一个新的整数,而不影响存储在i
中的值
表达式
i++
更新存储在i
中的值,而表达式i+1
返回一个新值,而不影响存储在i
中的值。在循环内部以及循环更新的一部分中,第一个表达式是递增的i
。在第二种情况下,调用i+1
时只需创建一个新的整数,而不影响存储在i
中的值
表达式
i++
更新存储在i
的值,而表达式i+1
返回一个新值,而不影响存储在i
的值++
是将“i”的值更改1的运算符。它是i=i+1
的简写符号
i+1
是一个加法语句,返回它通常会返回的值,但它不会更改i的值,因为i没有被重新分配
出现错误的原因是
i++
在递增之前使用i
,而如果要在递增之后使用,则需要使用++i
(递增,然后使用)。由于i++
也在递增计数器,因此将跳过某些值。++
是将“i”的值更改1的运算符。它是i=i+1
的简写符号
i+1
是一个加法语句,返回它通常会返回的值,但它不会更改i的值,因为i没有被重新分配
出现错误的原因是
i++
在递增之前使用i
,而如果要在递增之后使用,则需要使用++i
(递增,然后使用)。由于i++
也在递增计数器,因此将跳过一些值。a=i++代码>等于a=i;i=i+1代码>
int[] aryNums=new int[5]; //array index starts from 0, so last index is "4"
for (int i=0; i<=5; i++) // 0, 1, 2, 3, 4, "5" -> out of bounds
{
aryNums[i]=i++; //i++ -> first put the i to arrNums[i], "then" increase i
System.out.println(aryNums[i]);
}
int[]aryNums=newint[5]//数组索引从0开始,所以最后一个索引是“4”
for(int i=0;i超出范围)
{
aryNums[i]=i++;//i++->首先将i放入arrNums[i],“然后”增加i
System.out.println(aryNums[i]);
}
解决方案:
- 将
=
从ia=i++;
等于a=i;i=i+1;
int[] aryNums=new int[5]; //array index starts from 0, so last index is "4"
for (int i=0; i<=5; i++) // 0, 1, 2, 3, 4, "5" -> out of bounds
{
aryNums[i]=i++; //i++ -> first put the i to arrNums[i], "then" increase i
System.out.println(aryNums[i]);
}
int[]aryNums=new int[5];//数组索引从0开始,所以最后一个索引是“4”
for(int i=0;i超出范围)
{
aryNums[i]=i++;//i++->首先将i放入arrNums[i],“然后”增加i
System.out.println(aryNums[i]);
}
解决方案:
- 从
i中删除=
。第三段是对第一段的一个非常重要的补充,因为它解释了增量前和增量后运算符之间的差异。第三段是对第一段的一个非常重要的补充,因为它解释了增量前和增量后运算符之间的差异。