经典C++程序

zhangleiatzzu 2009-05-03 11:00:25
#include <iostream>
using namespace std;
int main()
{
int n;
for(n=0;n++;)
{
if(n==8)
break;
else
cout<<n<<"\t";
}

for(n=0;++n;)
{
if(n==8)
break;
else
cout<<n<<"\t";
}

return 0;
}

请问第一个for循环中为什么会终止循环?
第二个为什么能继续循环?
...全文
438 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangleiatzzu 2009-05-06
  • 打赏
  • 举报
回复
这个程序中的for循环的第二个条件是专门这样写的,经过大家的讲解我明白了,其实这个条件既要自己做运算,同时也要做判断条件,谢谢讲解!
zhangleiatzzu 2009-05-06
  • 打赏
  • 举报
回复
谢谢讲解!
hjjdebug 2009-05-04
  • 打赏
  • 举报
回复
用两段是for循环也行, for 循环不像一个do-while 循环,而像一个while循环。
先判断条件,再执行循环体。 所以有可能一次都不执行循环体。
hjjdebug 2009-05-04
  • 打赏
  • 举报
回复
都是编译器搞的鬼,这种写法不常用。建议用标准3段式。
fiyaa 2009-05-04
  • 打赏
  • 举报
回复
呵呵,又它来说明++N与N++还行,没人会这样写吧
lzh9955 2009-05-04
  • 打赏
  • 举报
回复
搜搜
陌上花花 2009-05-04
  • 打赏
  • 举报
回复
学习了,帮顶。
caremsi 2009-05-04
  • 打赏
  • 举报
回复
帮顶
lpf000 2009-05-04
  • 打赏
  • 举报
回复
问题经典,不过简单。。
后缀返回原值,前缀返回改变后的值。。。
SimonYeung 2009-05-04
  • 打赏
  • 举报
回复
N++
++N
的区别撒 呵呵
lizhi110110110 2009-05-04
  • 打赏
  • 举报
回复
up
wangsiyuanoo 2009-05-04
  • 打赏
  • 举报
回复
都会跳出循环
只是第二个比第一个慢一个跳出罢了
wang7890 2009-05-04
  • 打赏
  • 举报
回复
n++和++n的区别而已,

讨论的过于复杂了
yishuihanxiao 2009-05-04
  • 打赏
  • 举报
回复
n++和++n的区别而已,

讨论的过于复杂了
thorhero 2009-05-04
  • 打赏
  • 举报
回复
脑筋急转弯=.=
我看你有戏 2009-05-04
  • 打赏
  • 举报
回复
有点类似脑筋急转弯
scsnsjsl_cs_dn 2009-05-04
  • 打赏
  • 举报
回复
收藏
liliangbao 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qqwx_1986 的回复:]
C/C++ code#include <iostream>
using namespace std;
int main()
{
int n;
for(n=0;n++;) //n++,先计算n,此时n==0,为假,跳出for循环,所以下面的没有执行
{
if(n==8)
break;
else
cout <<n <<"\t";
}

for(n=0;++n;) //++n,先计算++,此时n==1 为真
{
if(n==8) //当n==8时跳出for循环
break;
else…
[/Quote]
正解
GP625 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wanghao111 的回复:]
C/C++ code#include <iostream>
using namespace std;
int main()
{
int n;
for(n=0;n++;) //n++为后置加,先使用n之后,n再加一;此处先使用n,因为n为0,故不进入循环;
{
if(n==8)
break;
else
cout < <n < <"\t";
}

for(n=0;++n;) //++n为前置加,n先加一后,再使用n;此处n为0,n先加1后,再使用n,故可以进入循环;
{

[/Quote]

顶一个哈 这个说得不错
wanghao111 2009-05-04
  • 打赏
  • 举报
回复
#include <iostream> 
using namespace std;
int main()
{
int n;
for(n=0;n++;) //n++为后置加,先使用n之后,n再加一;此处先使用n,因为n为0,故不进入循环;
{
if(n==8)
break;
else
cout < <n < <"\t";
}

for(n=0;++n;) //++n为前置加,n先加一后,再使用n;此处n为0,n先加1后,再使用n,故可以进入循环;
{
if(n==8)
break;
else
cout < <n < <"\t";
}

return 0;
}
加载更多回复(19)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧