2 qq 37352934 qq_37352934 于 2017.01.16 18:56 提问

C++break语跳出语句的问题
c++

break跳出语句的
int main(int argc,char *argv[])
{
int k=4,n;
for(n=0;n<k;n++)
{
if(n%2==0)

        break;

    k--;
}
printf("k=%d,n=%d",k,n);
return 0;

}
的运行结果为什么是k=4,n=0;不运行n++吗

6个回答

u010434246
u010434246   2017.01.16 19:43

0 % 2 == 0 ,后边的就不再运行

qq_32211827
qq_32211827   2017.01.16 21:51

首先:你需要知道的是这里主要是理解break的含义---break的含义是跳出整个循环(同时你还记得continue的含义么---它是跳出本次循环)
其次:我们来看程序,开始执行main函数。
   1 k=4,
2 for循环开始 n=0,n<k,成立
3 依次执行if语句,if语句里面的条件成立,则执行break
4 而break的含义是跳出整个循环,所以说执行了break语句之后,程序直接调到printf("k=%d,n=%d",k,n);
5 这就是为什么直接输出了 k=4,n=0
最后,还要 注意一点的是 continue的时候,结果是什么。比较continue和break的区别,能理解更透彻

shen_wei
shen_wei   Ds   Rxr 2017.01.17 15:06
 for(n=0;n<k;n++)
{
    if(n%2==0)
    {   
        break;
    }
    else
    {
        k--;
    }
}

调理清晰才能更直观理解。。。

wawa092
wawa092   2017.01.17 17:46

当if(n%2==0)成立后,break语句会跳出for循环,执行for循环之后的语句,如果只想跳过当前值,将break改为continue,这样就是跳出本次循环,进入下次循环

CHENGZI2009
CHENGZI2009   2017.01.18 10:32

要知道for循环的执行顺序,如:
for(表达式1;表达式2;表达式3)
{
代码段
}
则其执行顺序如下:
表达式1——>表达式2(如果条件成立,循环执行后面步骤,否则退出)——>代码段——表达式3——表达式2

wangyezidong
wangyezidong   2017.01.19 16:18

for循环中的n++是在下一次循环的时候++,你可以试一下for(n=0;n<k;){n++;}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!