想问下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;
} 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]