目录
1.什么是语句
2.分支语句(选择结构)
2.1 if语句
2.1.1练习
2.2 switch语句
分支语句:
循环语句:
goto 语句
C语句可分为一下五类:
在此我们只要讲解控制语句。
C语言是一门结构化的程序设计语言
控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序语句,选择结果,循环结构)他们由特定的语句定义符组成,C语言有九种控制语句。
如果你好好学习,校招时拿一个好offer,走上人生巅峰。
如果不学习,毕业等于失业,回家卖红薯。
这就是选择。
以上时双分支语句,我们还会学习到三分支和多分支。
单分支语法结构
if(表达式) 表达式的结果如果为真,语句执行
语句: 0表示假 非0表示真
双分支语法结构
if (表达式1)
语句1;
else
语句2;
多分枝语法结构
if (表达式1)
语句1;
else if
语句2;
else
语句3;
代码演示:
单分支的结构:
#include
int main() { int age = 0; scanf("%d", &age); if (age >= 18) printf("成年\n"); return 0; } 如果年龄大于等于18
双分支结构:
#include
int main() { int age = 0; if (age >= 18) printf("成年\n"); else printf("未成年\n"); return 0; } 如果年龄大于等于18,否则打印未成年。
多分支结构:
#include
int main() { int age = 0; scang("%d",&age); if (age < 16) printf("少年\n"); else if (age >= 16 && age < 30) printf("青年"); else if (age >= 30 && age < 40) printf("中年"); else if (age >= 40 && age < 56) printf("状年"); else if (age >= 56 && age < 80) printf("老年"); else printf("老寿星"); return 0; }
如果条件成立,要执行多条语句,怎应该使用代码块。
if语句默认只能控制一条语句,如果想控制多条语句,那么要加上{}。
else是和最近的if匹配
1. 判断一个数是否为奇数
2. 输出1-100之间的奇数
思路:判断一个数是否为奇数
一个整数%上2余1,他就是奇数,否则他就是偶数,我们输入一个数字,利用if语句判断。
#include
int main()
{
int a = 0;
scanf("%d",&a);
//判断是否为奇数
if (a % 2 == 1)
printf("奇数");
else
printf("偶数");
return 0;
}
思路:输出1-100之间的奇数
首先我们要生成1—100的数字,再判断他是不是奇数,是奇数我们就打印
#include
int main()
{
int a = 0;
while(a <= 100)
{
if (a % 2 == 1)
{
printf("%d\n",a);
}
a++;
}
return 0;
}
当然,我们还有另一种效率更高的方法,我们可以找到规律,每个奇数中间相差2。
#include
int main()
{
int a = 1;
while (a <= 100)
{
printf("%d",a);
a += 2;
}
return 0;
}
switch也是一种分支语句。
常常用于多分枝的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
#include
int main()
{
int day = 0;
scanf("%d", &a);
if (day == 1)
printf("星期一\n");
else if (day == 2)
printf("星期二\n");
else if (day == 3)
printf("星期三\n");
else if (day == 4)
printf("星期四\n");
else if (day == 5)
printf("星期五\n");
else if (day == 6)
printf("星期六\n");
else
printf("星期日\n");
return 0;
}
我们可以写成if...else if...else if...else if...,但是太过于复杂,那么我们就可以视为switch语句。
switch(整形表达式)
{
语句项:
}
而语句项是什么呢?
是一些case语句
如下:
case 整形常量表达式:
语句:
#include
int main()
{
int day = 0;
switch(day)
{
case 1://冒号
printf("星期一\n");
break;//停止的意思
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("选择错误");
break;
}
return 0;
}
注:case是相当于入口,如果没有break停止的话去,程序还是依然会往后执行。
当所有的case不匹配的时候,就可以使用default字句
下面让我们来看这一段代码的运行结果是多少。
#include
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{//switch允许嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
这个是主要看大家有没有掌握switch语句的语法规则。
#include
int main()
{
int n = 1;
int m = 2;
switch (n) n=1,进入case1
{
case 1:
m++; m=3,没有break进入case2
case 2:
n++; n=2,没有break进入case3
case 3:
switch (n) n=2,进入case2
{//switch允许嵌套使用
case 1:
n++;
case 2:
m++; m=4
n++; n=3
break;
}
case 4: 进入
m++; m=5
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n); m=5,n=3
return 0;
}
通过这个我们要知道两点,第一是switch语句可以嵌套使用
第二是break只会跳出他所在的switch语句