目录
3.1.1 while循环中break和continue的对比
本章的重点是分支语句和循环语句。具体分类如下:
分支语句:if跟switch
循环语句 :while for do while
1、什么是语句?
在C语言中,由";"隔开的就是一条语句。
例如:1+5=6;printf("MIT");
2、分支语句
2.1 if语句
if语句的语法结构:
(1)if(表达式)
语句;
(2)if(表达式)
语句1;
else
语句2;
(3)if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
注:要注意的是 在第三种结构中,它的语句只能执行一种情况。 而表达式的结果为真,才可执行。在C语言中,0为假,一切非0表示真。
2.1.1 关于if 和 else匹配的问题
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("MIT\n");
else
printf("MAVIS\n");
return 0;
}
经过测试,什么也没打印。
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("MIT\n");
}
}
else
{
printf("MAVIS\n");
}
return 0;
}
而经过改正,成功打印MAVIS。这里就涉及到一个细节,就是else的匹配,else是和它离的最近的if匹配的。
2.2 switch语句
我们来想一个问题,当我们要输出周一到周日这七种情况,假如我们继续用if...else if ....else if..的选择语句来执行,未免也太麻烦,而switch语句就是为了解决这种情况。
语法形式:switch(整型表达式) { 语句项; }
2.2.1 switch语句的break
关于break的作用 我们可以通过两段代码来理解。
include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
。
switch(day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
return 0;
}
我们可以发现,我们本来想要输出星期一,但是星期一到星期天都被输出了。这时候我们加上break来测试。
可以看出,break可以让想要被执行的语句执行之后及时跳出switch语句。
2.2.2 default子句
从以上的代码中,我们想,如果我们输入的数字跟里面其中情况不匹配,该怎么办?
这时候我们可以用default子句,若输入其他数字,则同意总结为输入错误。
3 循环语句
(1)while循环
(2)do while循环
(3)for循环
3.1 while循环
while循环的语法结构:while(表达式){ 循环语句; }
3.1.1 while循环中break和continue的对比
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
int main()
{
int i = 1;
while(i<=10)
{
i = i+1;
if(i == 5)
continue;
printf("%d ", i);
}
return 0;
}
经过以上对比,可以看出循环中只要遇到break,就停止后期的所有的循环,直接终止循环。而continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,但还是会跳到循环判断条件的部分,进而执行下一次循环。