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;}
}
这样写,会怎么样? 展开
{
{if(a[i]==b)c=1;break;}
}
这样写,会怎么样? 展开
6个回答
展开全部
这样写,只会执行一次判定,无论a[i]是否与b相等,程序都会执行break,跳出循环
追问
为什么会执行一次
追答
没有{}时,条件判断语句if(a[i]==b)包含相邻的一句c=1;而不包含break;
for循环中每次循环都会运行break; 而第一次运行break;时,就会跳出for循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为这样写break不在if分支语句中,进入循环后会无条件执行,所以一定会一进入循环,判断一次后就结束循环。这种时候,只有a[0]==b时,c才会为1,否则,任何时候c都不会被赋值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
{
{
if(a[i]==b)
c=1;
break; //无论if判断结果如何,都会执行到
}
}
只对a[0]进行操作就退出循环
for(i=0;i<8;i++)
{
if(a[i]==b)
{
c=1;
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只比较一次便会跳出循环。如果a[0]等于b,则c=1,跳出循环。如果a[0]!=b则直接跳出循环,因为你没有把c=1;break;扩在一个大括号里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从a[1]到a[7]只要有一个与b相等的,就会把c=1,并且跳出循环,否则就一直到循环结束为止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询