(六)C语言教程&continue,break和switch-case

(六)C语言教程&continue,break和switch-case

continue还是很好理解的,”继续,接着”,在C语言里就是跳过本次循环里未执行的语句,进行下一次循环,读不懂的咬文嚼字的琢磨琢磨

给个简单的例子可能更直接点:

include

int main(){

    for(int i=1;i<=10;i++){

        printf(“%d\n”,i);

    }

    return 0;

}

运行结果:

如果加上个continue,把代码变成这样:

include

int main(){

    for(int i=1;i<=10;i++){

        if(i==3)              //从这里开始加

            continue;         //到这里结束

        printf(“%d\n”,i);

    }

    return 0;

}

运行结果就变成这样了:

少了一个3
是不是少了个 3,它的运行就是这样的,

当 i=1时,i 不等于3,直接输出1,

当 i=3时,i 正好等于3,执行continue,跳过后面循环的printf,就不输出了
当 i=4时,i 又不等于3了,继续输出4

其实并不难理解,自己试一试便可以明白透彻

然后就到我们今天主体的另一个:break了

break,本意打破,间断,C语言里也差不多,就是退出循环,后面的所有循环都不执行,还是上面那个例子,把continue换为break:

include

int main(){

    for(int i=1;i<=10;i++){

        if(i==3)              

            break;             //只换了这一行

        printf(“%d\n”,i);

    }

    return 0;

}

运行结果:

打断施法(
可以看出,i=3以后的所有循环都不执行了,只输出了1,2

看到这里,应该能理解continue和break的区别了吧,不明白就自己多举几个例子

比如输出一到十的奇数或偶数,也可以用continue来实现

下面咱来讲讲switch-case结构

这个也是C语言重点之一的啊,都记住喽,拿出小本本来记

switch-case 是一种类似与 if-else if 的语句,其实二者在大多情况下都可以互相转换,但是switch是经常和break连用的,一般情况都需要

先写个例子吧,比如,你输入一个小写数字,输出它的大写形式(为了方便,这里就取1,2,3三个数字)

先上 if 格式的:

include

int main()

{

    int num;

    scanf(“%d”,&num);

    if(num==1)

        printf(“壹\n”);

    else if(num==2)

        printf(“贰\n”);

    else if(num==3)

        printf(“叁\n”);

    return 0;

}

很正常对不对,接下来看看 switch-case 格式的:

include

int main()

{

    int num;

    scanf(“%d”,&num);

    switch(num){

case 1:

        printf(“壹\n”);

    break;

        case 2:

        printf(“贰\n”);

    break;

        case 3:

        printf(“叁\n”);

    break;

    }

    return 0;

}

运行结果:

应该看的明白吧,switch( a ),就是你要判断 a,后面的case就是当a=几时执行的语句,比如case 1:,就是当a=1时,后面加上你需要执行的语句,最后一定要加一个break,不然就会执行后面所有的case,比如去掉这个例子里的break,执行结果就是这样:

所以一定要记得加上break (大多数情况),另外你也可以在最后加一个default:,这个里面不需要加break,它就是其他的意思,所以switch基本格式就是这样:

switch(a){

    case 1:

        //TODO

        break;

    case 2:

        //TODO

        break;

    …

    default:

        //TODO

}

其实switch完全可以被 if else代替,但是貌似这样写比倒金字塔好看点,并且简单明了,多种情况还是建议用的

好了,今天就讲到这里吧,另外,再布置一点小作业,题目如下:

输入数学表达式(形似1+1),数字为整数,符号仅限+ – * /,且当符号为 / 时,除数不为零,输出此数学表达式的结果(如1+1输出2)

这是上次题的答案:

include

int main(){

    int num,a;

a=1;

printf(“请输入一个数字:”);

scanf(“%d”,&num);

for(int i=2;a==1&&i<=num-1;i++){

if(num%i==0)      //貌似没说过%的意思,这个就是取余,就是余数,比如2%1就是0,

a=0;      //而3%2就是1,因为3/2=1…1

}

if(a==1)

printf(“这个数是质数\n”);

else

printf(“这个数是合数\n”);

    return 0;

}

发表评论