Jackylee3362 发表于 2021-4-8 16:08:22

想问下break和continue的区别

这段代码中,为什么用break和continue的效果是一样的?
(把switch中的continue换成break),输出是一样的,难道用break不是直接跳出循环吗?
#include <stdio.h>

int main()
{
    char ch;
    int a = 0, A = 0;
    while ((ch = getchar()) != '\n'){
      switch (ch){
      case 'a': a++;continue;
      case 'A': A++;continue;
      }
    }
    printf("a的个数是%d;A的个数是%d", a,A);
    return 0;
}

yuxijian2020 发表于 2021-4-8 16:14:13

break和continue都是作用于离他们最近的
区别在于break对switch有作用而continue只针对循环
这样就很好理解了
你的程序里continue是进行下次循环   而break是跳出switch
然而你的switch是循环中的最后一个语句所以break跳出switch后也开始下一次循环
所以这里效果是一样的但其实差别很大
#include <stdio.h>

int main()
{
    char ch;
    int a = 0, A = 0;
    while ((ch = getchar()) != '\n'){
      switch (ch){
      case 'a': a++;continue;
      case 'A': A++;continue;
      }
      //这里加一句break和continue的区别就出来了
      printf_s("break跳出后继续执行\n");
    }
    printf("a的个数是%d;A的个数是%d", a,A);
    return 0;
}
页: [1]
查看完整版本: 想问下break和continue的区别