| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:高手看下break问题
只看楼主 加入收藏
luoweijun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2009-6-12
结帖率:64.71%
收藏
已结贴  问题点数:20 回复次数:4 
高手看下break问题
有一下程序
main()
{ int i,j,x=0;
  for(i=0;i<2;i++)
  {  x++;
     for(j=0;j<=3;j++)
     {if(j%2)continue; x++;}
     x++;
  }
  printf("x=%d\n",x);
}
这个程序的执行结果是8,但是我自己算的时候却算不出来,我是这样考虑的,进入第一个for循环,执行了x++后进入内部for循环,里边的for循环执行4次,当j=3的时候不执行x++,其他3次都执行,此时x=4,再执行下面的x++,进入外部第二次for循环执行一次,得结果x=7,晕了,就是看不出来那错了,高手帮忙啊!
又想起了一个题
main()
{  int i=0,s=0;
   for(;;)
    {  if(i==3||i==5)continue;
       if(i==6)  break;
         i++;
         s+=i;
     }
  printf("%d\n",s);
}这个程序为什么是死循环啊,不是有break吗,为什么跳不出来呢,指教下,谢谢!!
感觉自己对break和continu语句掌握的不是很好,说点指教指教下!!
搜索更多相关主题的帖子: break 
2009-08-30 16:57
西园竹
Rank: 5Rank: 5
等 级:职业侠客
帖 子:41
专家分:305
注 册:2009-8-8
收藏
得分:5 
for(i=0;i<2;i++)/*循环了两次*/
  {  x++;/*大循环加1次*/
     for(j=0;j<=3;j++)/*循环4次*/
     {if(j%2)continue; x++;}/*有两次小循环没执行到x++,因此相当于执行两次,大循环2*小循环2=4*/
     x++;/*大循环加两次,因此大循环加了2*2=4次*/
  }
所以是8
for(;;)
    {  if(i==3||i==5)continue;/*当x==3之后,循环就一直continue了,下面的根本执行不到,死循环*/
       if(i==6)  break;
         i++;
         s+=i;
     }
2009-08-30 17:04
luoweijun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2009-6-12
收藏
得分:0 
下面的那个程序看明白了,上面你说的内部for循环执行4次为什么只有来那个词执行了x++,我老想j=0一次,j=1两次,j=2三次,你是怎么算的哦,还有,里边的for循环结束后,在返回执行外部for循环的时候,第二次还要执行已经执行等于循环结束的内部for吗,不是这时的j已经等于4了吗?请教
2009-08-30 17:32
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:5 
看你的阐述,你有两个地方理解错误。
for(j=0;j<=3;j++)   /*第一个地方理解循环错了,j等于3时是可再循环一次,一共4次。*/
     {if(j%2)continue; x++;} /*第二个:j=0和j=2时都执行不到x++,循环4次才执两次x++,外层for循环完一次x等4,这里外for循环两次,结果当然是8喽。*/

努力—前进—变老—退休—入土
2009-08-30 18:15
a4179745
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2009-8-31
收藏
得分:10 
if语句是值为1时,才执行里面的语句。j%2时,0跟2%2都为0;2跟3都为1;
break跟continue语句都是表示结束,不执行循环下面的语句,只是,break离开循环,继续执行下条语句,而continue是回到循环开始处,继续执行。
2009-08-31 11:00
快速回复:高手看下break问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019454 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved