为什么没有算++

来源:3-8 Java中运算符的优先级

滴水0藏海

2017-03-08 20:06

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,不是先算括号里面的吗?结果没算啊?为什么啊?谢谢?

写回答 关注

4回答

  • 慕前端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”的简写,我觉得这可能是你疑惑的地方

    滴水0藏海

    15%(4*(c++))的结果也还是3,没有算c的自加,15%(4*++c)才行

    2017-03-09 09:09:50

    共 1 条回复 >

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

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

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165639 学习 · 17587 问题

查看课程

相似问题