黑马程序员技术交流社区

标题: 三元运算符的问题 [打印本页]

作者: klamo    时间: 2015-8-21 23:05
标题: 三元运算符的问题
本帖最后由 klamo 于 2015-8-21 23:06 编辑

day03的课程,有道题是:
    1~100中7的倍数,例出并算出个数和。

我写的过程:
                int z=0 , a=0;
                        System.out.print("以下数字是1~100中7的倍数");
                for ( x=1 ; x<101 ; x++)
                {
                        z=((x%7)==0)?z+1:z+0;
                        if (x%7==0)
                        {
                                System.out.print(x+",");
                        }
                }
                System.out.println("");               
                System.out.println("1~100中7的倍数的个数="+z);

程序可以顺利运行并计算结果,但是为什么把式中的 “z=((x%7)==0)?z+1:z+0;”改为 “z=((x%7)==0)?z++:z+0;”结果就就无法计数了? z+1和z++就结果来说不是应该一样的吗?


作者: liuch111    时间: 2015-8-22 09:43
z=z++;
z=++z;
这两个语句 你搞清楚就懂了
作者: 史柯    时间: 2015-8-22 12:54
我这么说吧!
z++是先把z放进去运算,运算结束了在+1;
++z是先让z+1,然后再运算。
z+1=++z;
楼上说的有道理。
z=z++;
z=++z;
这两个语句 你搞清楚就懂了
作者: taojunqiu225    时间: 2015-8-22 16:16
理论结果是一样,只是先后的问题~
作者: 段山虎    时间: 2015-8-22 18:30
每天过来看看!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2