C中碰到的关于递增计算的问题 希望能解答一下
本帖最后由 国群 于 2019-11-21 22:28 编辑你好,新人C语言求助,请问for循环中for(x=1;y<=75;y=++x*5+50)当X为1是 后面y的值不是先自增1运算2*5+50等于60,然后X=1 Y=60吗,为什么还是55呀
for(x=1;y<=75;y=x++*5+50)这样修改的话x是先运算在自增 所以x=1 y=55 可是为什么x=2的时候 y还是55呀求解 谢谢大佬 本帖最后由 yourGrace 于 2019-11-15 23:49 编辑
for循环最后那个是,for循环体执行一遍后,再执行的东西,所以在第二行输出
初始化 x=1 后,判断 y 小于 75, 然后执行for循环题里面的内容,然后才是 for 循环括号内最后一个分号的内容。
建议看一下 for 循环的顺序 第一个图是:y=55,y=2*5+50
第二个是y=55, y=1*5+50, y=2*5+50 楼主你好
for(表达式1;表达式2;表达式3),表达式3是执行完for循环中的语句后再执行的语句。
对于++x*5+50那道题 过程如下:
输出1,55;
x自增然后参与运算,得60;
将y赋值为60;
输出2,60;
.......
对于x++*5+50那道题 过程如下:
输出1,55;
x参与运算,得55;
将y赋值为55;
x自增,得2;
输出2,55;
......
for()里面最后一句,要等到循环一遍结束时才执行,也就是先执行了打印y,再执行更新y的计算。 zengbing7682300 发表于 2019-11-19 20:05
进入for循环第一执行x = 1,也只执行一次
谢谢已经了解了 二楼正解,就是for()循环语句的第3个表达式值最后一次执行的,再返回表达式2进行判断;
页:
[1]