Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java i和x2B之间的差异+;而我+;数组计数为1_Java_Increment_Post Increment - Fatal编程技术网

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]);
}
解决方案:


  • =
    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=new int[5];//数组索引从0开始,所以最后一个索引是“4”
    for(int i=0;i超出范围)
    {
    aryNums[i]=i++;//i++->首先将i放入arrNums[i],“然后”增加i
    System.out.println(aryNums[i]);
    }
    
    解决方案:


    • i中删除
      =
      。第三段是对第一段的一个非常重要的补充,因为它解释了增量前和增量后运算符之间的差异。第三段是对第一段的一个非常重要的补充,因为它解释了增量前和增量后运算符之间的差异。