【问题标题】:Questions about Java loops and post/prefix operators [duplicate]关于 Java 循环和后置/前缀运算符的问题 [重复]
【发布时间】:2015-05-21 18:44:50
【问题描述】:
int a=0;

    for (a=0; a++<=10;) {
        System.out.print(a+ " ");
    }

Output: 1 2 3 4 5 6 7 8 9 10 11  

为什么当变量“a”达到 10 时循环结束时它会打印 11,以及为什么它不以 0 开头,因为使用了后缀运算符?

int a=3, b=4;

    int c = a + b++;

    System.out.println(+c);

Output: 7

为什么后缀自增运算符不在变量 b 中添加值? 输出不应该是‘8’吗?

【问题讨论】:

    标签: java prefix postfix-notation


    【解决方案1】:

    a++ 表示使用a 的值,然后加1。

    所以第一个将a 的值读取为 10,然后加 1,因此它打印的值是 11。

    第二个读取b 为4,所以c=3+4=7。添加完成后b变为5。

    【讨论】:

    • 如果是正确的那为什么系列不以 0 开头?
    • @user2015669:因为当您在println 中使用它时,它已经增加了。运算符处于for 条件中,因此for 条件使用旧值。然后for 的主体被执行,a 具有新值。
    • for部分检查条件时,a=0。但是在检查之后,它被增加到a = 1。所以它将打印1 而不是0
    • 非常感谢您澄清了我的概念!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2018-01-30
    • 2013-05-06
    • 2015-07-29
    相关资源
    最近更新 更多