前一章讲的是初识C语言部分,由于是“初识”,所以相关讲解都不算详细,只是简单的介绍一遍C语言所包含的大部分内容。从这一章开始,后面的内容会逐渐深入,而本章讲的是“分支语句和循环语句”。话不多说,正文开始!
1.分支语句和循环语句
分支语句:if,switch
循环语句:while,for,do while
goto语句
C语言中由一个分号(;)隔开的就是一条语句
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
2.分支语句(选择语句)
-
if
-
switch
-- -- -- -- -- -- -- -- -- --
if语句
语法结构1:
if(表达式)
语句1;
如果表达式1计算结果为真,则执行语句1,否则什么都不执行
-- -- -- -- -- -- -- -- -- --
语法结构2:
if(表达式)
语句1;
else
语句2;
如果表达式计算结果为真,则执行语句1,否则执行语句2
-- -- -- -- -- -- -- -- -- --
语法结构3:
(多分支)
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
...
else
语句N
如果表达式1成立,则执行语句1,否则判断表达式2;如果表达式2成立,则执行语句2,否则判断表达式3;。。。否则执行语句N(只能执行一条语句)
-- -- -- -- -- -- -- -- -- --
示例
#include <stdio.h>
int main()
{
int age = 19;
if (age < 18)
printf("未成年\n");
else if (age >= 18 && age <= 28)//&&可以解读成”并且“
printf("青年\n");
else
printf("成人\n");
return 0;
}
运行结果:青年
-- -- -- -- -- -- -- -- -- --
如果条件成立,要执行多条语句,应该使用代码块
int main()
{
if(表达式)
{
语句1;
语句2;
}
else
{
语句3;
语句4;
}
return 0;
}
这里一对大括号({})就是一对代码块
-- -- -- -- -- -- -- -- -- --
悬空else
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a==1)
if(b==2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
运行结果:什么都不输出①
else会与离他最近的未匹配的if配对,所以这串代码在判断a==1为假时后面的都不会再执行
-- -- -- -- -- -- -- -- -- --
输出1~100的奇数
#include <stdio.h>
int main()
{
int i = 0;
while(i<100)
{
if(i%2!=0)//i+=2;也可以
printf("%d ",i);
i++;
}
return 0;
}
运行结果:1 3 5 7 9 11 13 ... 97 99②
-- -- -- -- -- -- -- -- -- -- -- -- -- -- --
switch语句
语法结构:
switch(整形表达式)
{
语句项;
}
-- -- -- -- -- -- -- -- -- --
在switch语句中的break用来实现分支
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1://注意这里是冒号
printf("星期1\n");
break;
case 2:
printf("星期2\n");
break;
}
return 0;
}
运行结果:
输入1
打印:星期1③
-- -- -- -- -- -- -- -- -- --
break有时也可以省略
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1://没有遇到break就是继续执行后面的case,直到遇见break才跳出switch语句
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误\n");
}
return 0;
}
运行结果:
若输入1—5:打印“工作日”
若输入6—7:打印“休息日”
若输入其他数字:打印“输入错误”
-- -- -- -- -- -- -- -- -- --
default子句
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以每个switch语句只能出现一条default子句
附
①
②
③