加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

break、continue在switch、循环中的作用

(2012-01-30 20:14:06)
标签:

杂谈

一、在for循环中,break将跳出整个循环,而continue则只跳出本次循环,不执行后面的语句,直接进行下一次循环;
例1:
int main()
{
    int i;
    char s='a';
    for(i=0;i<5;i++)
    {
    if (s=='a')
    {
    printf("%d\n",i);
    continue;
}
    printf("ss\n");
    }
}
将会依次输出0~4

int main()
{
    int i;
    char s='a';
    for(i=0;i<5;i++)
    {
     if (s=='a')
     {
    printf("%d\n",i);
    break;
}
     printf("ss\n");
    }
}
输出0后即结束

二、continue一般不能用于switch,但如果switch位于循环,则可用。但此时,break只是跳出switch,会继续执行switch后的语句,而用continue则会使得程序不仅跳出switch语句,同时也跳出本次循环,不再执行switch后的语句,直接进入下轮循环。
例2:
int main()
{
    int i;
    char s='a';
    for(i=0;i<3;i++)
    {
switch (s)
        {
            case 'a':
                    printf("%d\n",i);
    break; //continue; ..............................................(1)
            default: 
    break;
    }

    if (s=='a')
    {
    printf("%d\n",i);
    break;  //continue; ..............................................(2)
}
    printf("ss\n");
   

    system("PAUSE");
    return 0;
}
1、如果(1)、(2)处都用break,输出00
   第一个break允许在输出第一个i即0后继续执行下面的if语句,因此接着又输出一个i(0),后面又出现了一个break,则会使得程序跳出循环,不会输出ss。

2、如果(1)、(2)处都用continue,输出012
   第一个continue使得从输出第一个i(0)后,从switch跳出来且不执行下面的语句,因此会使i增加为1且继续输出,直到满足循环结束条件。

3、如果(1)用break,(2)用continue,则输出001122
   第一个break使得在switch中输出i后,继续执行下面的if语句,但if语句中的continue使得再次输出i后,不再执行输出ss的操作,但会进入下一次循环。

4、如果(1)用continue,(2)用break,则输出012
   参考2的解释。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有