17. break和continue

在论break:

-break能够强制结束当前结构,组织程序向下执行

-switch分支选择结构,break立即结束switch;

-循环结构,break立即结束循环(忽略循环条件的真假)

举例:

#include <stdio.h>

int main()
{
    int sum = 0;
    int i = 1;
    while(1)
    {
        sum = sum + i;
        if(i==100)
            break;
        i = i + 1;
    }
    printf("sum = %d\n",sum);
    printf("i = %d\n",i);

    return 0;
}
 

问题:循环和switch互相嵌套时,break如何执行,跳出循环还是跳出switch?

原则:最近匹配

-break总是与离他最近的对应关键字匹配

#include <stdio.h>

int main()
{
    int i = 0;

    for( i=1;i<=10;i++ )
    {
        switch(i%2)
        {
            case 0:
                printf("%d is even number \n",i);
                break;
            case 1:
                printf("%d is odd number \n",i);
                break;
        }
    }
    return 0;
}
17. break和continue

 

break 和continue

continue立即结束当前循环体,直接进入下一轮循环判断,continue并不会结束整个循环

练习:

打印1000以下能被7整除的整数,并统计数量

#include <stdio.h>

int main()
{
    int i = 0;
    int n = 0;
    for( i=1;i<=100;i++ )
    {
        if(i%7)
            continue;
        printf("%d ",i);
        n++;
    }
    printf("\nn= %d\n",n);
    return 0;
}
17. break和continue