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;
}
发表评论