2 tracyjack123 tracyjack123 于 2016.02.18 10:11 提问

求助一个java语言的一个for循环语句
    for(int i=2,j=1;
        j<10;
        i=(i==9)?(((++j)/j)+1):(i+1)){
        System.out.printf("%d*%d=%2d%c",i,j,i*j,
                ((i==9)?'\n':' '));
    }

输出结果是99乘法表。
这个for循环里的++j为什么不能换成j+1啊?
谢谢各位了。

5个回答

enpterexpress
enpterexpress   2016.02.18 10:17
已采纳

++j是改变变量值的
j+1是不改变变量值的

qq_23660243
qq_23660243   2016.02.18 10:17

++j 等效于j=j+1 你用j+1 原j并没有变 因为没有赋值

hhb_1991
hhb_1991   2016.02.18 10:17

++j在每循环一次之后,j会加1,如果写成j+1的话,j会一直是初始化的1这个值

u011468424
u011468424   2016.02.18 10:18

++j 是改变了j变量的值(相当于 j = j + 1),而 j + 1 只是输出了运算结果(j变量本身的值并没有变化)

Joson_Wang
Joson_Wang   2016.02.18 10:25

++j给j赋值了j=j+1 而j+1 j没变

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!