永发信息网

for循环的问题

答案:7  悬赏:0  手机版
解决时间 2021-05-01 03:30
  • 提问者网友:藍了天白赴美
  • 2021-04-30 20:18

(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?

最佳答案
  • 五星知识达人网友:woshuo
  • 2021-04-30 21:48

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


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


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

全部回答
  • 1楼网友:蓝房子
  • 2021-05-01 01:59

第一句加了;号,是在整个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.

  • 2楼网友:英雄的欲望
  • 2021-05-01 01:01

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

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

  • 3楼网友:洎扰庸人
  • 2021-04-30 23:33

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

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

  • 4楼网友:野味小生
  • 2021-04-30 23:14
因为(2)的for后面少了个分号
  • 5楼网友:思契十里
  • 2021-04-30 22:32
这两个方法是共用一个变量n,是写在同一个类里面吧
  • 6楼网友:行路难
  • 2021-04-30 22:13
改为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++; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯