问答详情
源自:3-8 Java中运算符的优先级

为什么没有算++

package fist; public class fist { public static void main(String[] args){ int c=1; int xx=3*5%(4*c++);//不是先算小括号的吗?为什么没有算++的结果; System.out.println(xx); System.out.println(c); } } 为什么结果是3而不是7,不是先算括号里面的吗?结果没算啊?为什么啊?谢谢?

提问者:滴水0藏海 2017-03-08 20:06

个回答

  • 慕前端6878218
    2017-03-08 21:16:55

    c++是先用c的值,用完之后再加的,++c就是先加1赋值给c,你换成++c试试

  • qq_小清新_9
    2017-03-08 20:55:43

    (4*c++)这个先算c++先运算后自增,所以c++等于1,之后再乘4,另外c++这种用在表达式不存在加1,


  • 在这跟我闹呢
    2017-03-08 20:30:46

    同学,他是计算了的,运算的顺序是这样的。先算括号里面的(4*c++),这个语句其实分成两部分:“4*c;c=c+1”,一,4*c,这时c的值为1,二,c++;1+1=2,c的值才变成2.  所以括号里面的值是4,只是又添加了一个给c加一的步骤,因此前面的15除以4,余3. 如果你想让4乘2,可以用括号来实现 int xx=3*5%(4*(c++)) . 这里要注意的是:c++ 并不是“c+1”,而是一个赋值语句“c=c+1”的简写,我觉得这可能是你疑惑的地方

  • 泡面番茄
    2017-03-08 20:29:05

    C++,是用了C之后再把C加一,3*5%4=15%4=3........3,所以xx为3,最后C加1