永发信息网

for循环的问题

答案:7  悬赏:0  手机版
解决时间 2021-05-01 03:30

(1) for (n=0;n<1;n++);prinf("n=%/d\n",n);-------------------n=1.

-----------------------------------------------------------------------------------------------------------

(2) for (n=0;n<1;n++) prinf("n=%/d\n",n);-------------------n=0.

-----------------------------------------------------------------------------------------------------------

为什么(2)中的语句执行之后的n为0?

最佳答案

第一句for后面多了个分号,那么它得执行完for语句,也就是n=1之后才输出。


第二句没有分号,那么它在第一次执行,也就是n=0的时候就输出n的值了,而当n=1的时候for已经不成立,所以不再输出。


顺便说下,输出的时候应该是prinf("n=%d\n",n); 你多了个斜杆

全部回答

第一句加了;号,是在整个for循环结束后,才会去打印n的值。当n=1时就已经跳出循环了,所以打印出来是1; 相当于

for(n=0;n<1;n++){

}

prinf("n=%/d\n",n); //相当这句话写在循环外

第二句没;号,相当

for(n=0;n<1;n++){

prinf("n=%/d\n",n); //相当这句话写在循环里

}

此时只有n=0时满足程序,所有打印出来的值是1.

这是因为你的prinf("n=%/d\n",n);是包含在for循环里面的,所以只有n=0是才符合n<1的要求;

而第一句的for循环后面有分号“;”,所以第一句for循环是什么都不用做,n=1时就接着执行prinf("n=%/d\n",n)了。

第一句是for执行完以后才打印N的,所以N=最后的数值;

第二句是在满足循环的条件下打印的,也就只有N=0满足N<1

因为(2)的for后面少了个分号
这两个方法是共用一个变量n,是写在同一个类里面吧
改为while循环可能更好理解 for (n=0;n<1;n++);prinf("n=%/d\n",n); n=0; while(n<1) { n++; } prinf("n=%/d\n",n); ---------------------------------------------- for (n=0;n<1;n++) prinf("n=%/d\n",n); n=0; while(n<1) { prinf("n=%/d\n",n); n++; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
AVA和CF有什么不同?
如何辨别手机按键真伪
城步县广告传播中心地址有知道的么?有点事想
为什么我才下的4.7的补丁安装好了进去到进度5
大一入学有考试不?
今天我去开户炒股什么都没问会不会被宰啊?
快递工作怎么样,快递员这份工作怎么样?优缺
FAQ:http://service.qq.com/special/aq/info
为什么我把相片传到贴吧了,到百度图片搜索搜
咋去北京香山?我住万柳,人大也行。去那都干
广灵县至北京的长途汽车是几点的?多少钱的票
明年高二没有艺术生了吗???
QQ密码咋就这么难改?
东和国土所地址有知道的么?有点事想过去
陈翔把票投给谁
推荐资讯
求份FLASH 音乐MV !!! 急急急!!
有没有一种软件
电影在P4上的下载
为什么打电脑时收藏夹出现它保存所在的那个盘
hb0062兄弟 给我2个新手卡
找歌好像是侧田的歌
飞车部件多少次改装才能显示强?
去自助餐怎么吃最划算,吃自助餐怎么吃划算
鲁西西送王昭君出塞(在线阅读)
麻烦提供点可免费下载小区景观设计图纸的网站
急!!!急!!专家进。女友隐私部位长了2个
我已经把超级QQ开通了,为什么在手机上玩不成
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?