有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    使用i++这意味着我将在使用后立即递增,++i意味着我将在使用前立即递增

     i = 1;
     y = i++;
    

    y=1,i=2

     i = 1;
     y = ++i;
    

    y=2,i=2

    在for循环的情况下,增量运算符的调用完全独立于它的求值时间,因此可以将其视为循环末尾的一条线

     i++; OR ++i;
    

    它是递增的,然后根据您的中心条件进行计算

  2. # 2 楼答案

    ++ii++的回报不同(它们的副作用相同:将i增加1)。循环for(start; condition; step)中有三个表达式,但它只查看condition返回的值。虽然每次迭代都执行step,但它只会删除结果,即step的副作用才是最重要的

  3. # 3 楼答案

    无论使用i++还是++i都是相同的,因为返回值未使用。表达式在经过循环体之后,在计算延续条件之前求值。请注意,它们是两个独立的表达式。也就是说,它们不同于:

    i++ < 10
    ++i < 10
    

    这将为i = 9产生不同的结果

  4. # 4 楼答案

    ++ii++之间只有细微的区别:

    • i++首先返回i的值,然后将其递增1
    • ++i首先递增i的值,然后返回值

    因为返回值不用于任何东西,所以在这种情况下它并不重要

  5. # 5 楼答案

    你说得对。i++和++i产生相同的结果,因为它在迭代结束时被评估,而没有使用

  6. # 6 楼答案

    因为您的for循环等价于此:

    int i = 0;
    while (i < 10) {
        System.out.println(i);
        i++;
    }
    

    在下一次迭代检查条件之前,增量后或增量前操作在结束时进行评估(并丢弃其返回值)

    如果使用返回值,它们会有很大的不同。以下代码相当于上面的循环:

    int i = 0;
    while (i < 10) {
        System.out.println(i);
        i = ++i; // pre
    }
    

    。。。但是这段代码创建了一个无限循环(i从不递增):

    int i = 0;
    while (i < 10) {
        System.out.println(i);
        i = i++; // post
    }
    

    警告:最后两个示例是特定于Java的示例。C和C++中的行为是未定义的,并且编译器上的两个行为可能非常一致。