| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖, 1 人收藏
标题:求解,有个语句看不懂
只看楼主 加入收藏
jue_1012
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-5-18
结帖率:66.67%
收藏(1)
已结贴  问题点数:10 回复次数:9 
求解,有个语句看不懂
#include<stdio.h>
main()
{int i,j=0;
  for(i=0;i<4;i++)
  {if(i%2) break;
  else
      j++;
  }
printf("j=%d\n",j);
}

这个if语句是怎么回事啊??为什么j运行出来是j=1???
2012-05-20 17:56
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:1 
我也看不懂,同求助

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-05-20 18:07
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:5 
当i=0的时候 i%2==0 if语句不成立,执行else,此时执行j++;然后进行下一次循环,i=1,i%2==1,判断条件成立,执行break语句,break语句结束整个循环,执行输出语句,所以j==1。
2012-05-20 18:28
jue_1012
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-5-18
收藏
得分:0 
那是不是if(i%2)等价于if(i%2!=0)???
2012-05-20 18:37
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
回复 楼主 jue_1012
循环四次,前三次即i=0.1.2时运行break,第四次i=3时,运行j++所以j=1。
if(i%2)表示i除2有余数运行j++,无余数,运行break,退出循环
2012-05-20 18:41
nongzhaobo
Rank: 3Rank: 3
来 自:广西南宁
等 级:论坛游侠
帖 子:59
专家分:155
注 册:2012-4-8
收藏
得分:1 
#include<stdio.h>
 main()
 {int i,j=0;
   for(i=0;i<4;i++)
   {if(i%2) break;
   else
       j++;
   }
 printf("j=%d\n",j);
 }
 我也不懂........
2012-05-20 18:44
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:1 
你可以单步调试
2012-05-20 21:28
linkang1024
Rank: 2
等 级:论坛游民
帖 子:90
专家分:83
注 册:2011-10-10
收藏
得分:0 
int  整数型   所以、、、  你懂的、
2012-05-20 21:40
az569872968
Rank: 2
等 级:论坛游民
帖 子:46
专家分:78
注 册:2012-3-14
收藏
得分:0 
同上
2012-05-20 22:58
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:2 
回复 5楼 震中地带
循环两次就完了,当i==1的时候就会执行break,break的功能是结束循环,你搞错了它的功能,你所理解的应该是continue的功能。
2012-05-21 01:36
快速回复:求解,有个语句看不懂
数据加载中...
 
   



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

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