for循环的问题
解决时间 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++;
}
我要举报
大家都在看
推荐资讯