C++问题:解释一下下面的程序:

for(i=0;i<8;i++){{if(a[i]==b)c=1;break;}}这样写,会怎么样?... for(i=0;i<8;i++)
{
{if(a[i]==b)c=1;break;}
}
这样写,会怎么样?
展开
 我来答
xiaolun217001
2013-03-09 · TA获得超过428个赞
知道小有建树答主
回答量:347
采纳率:100%
帮助的人:280万
展开全部
这样写,只会执行一次判定,无论a[i]是否与b相等,程序都会执行break,跳出循环
追问
为什么会执行一次
追答
没有{}时,条件判断语句if(a[i]==b)包含相邻的一句c=1;而不包含break;
for循环中每次循环都会运行break; 而第一次运行break;时,就会跳出for循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunhuiqi910526
2013-03-09
知道答主
回答量:11
采纳率:0%
帮助的人:18.5万
展开全部
因为这样写break不在if分支语句中,进入循环后会无条件执行,所以一定会一进入循环,判断一次后就结束循环。这种时候,只有a[0]==b时,c才会为1,否则,任何时候c都不会被赋值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
push0529
2013-03-09 · 超过12用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:38.1万
展开全部
for(i=0;i<8;i++)
{
{
if(a[i]==b)
c=1;

break; //无论if判断结果如何,都会执行到
}
}

只对a[0]进行操作就退出循环

for(i=0;i<8;i++)
{
if(a[i]==b)
{
c=1;
break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自修武
2013-03-09 · 超过26用户采纳过TA的回答
知道答主
回答量:139
采纳率:0%
帮助的人:55.3万
展开全部
只比较一次便会跳出循环。如果a[0]等于b,则c=1,跳出循环。如果a[0]!=b则直接跳出循环,因为你没有把c=1;break;扩在一个大括号里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友73c301b
2013-03-09
知道答主
回答量:45
采纳率:0%
帮助的人:19.7万
展开全部
从a[1]到a[7]只要有一个与b相等的,就会把c=1,并且跳出循环,否则就一直到循环结束为止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式