目录
1.什么是语句
2.分支语句(选择结构)
2.1 if语句
2.1.1练习
2.2 switch语句
分支语句:
ifswitch
循环语句:
whilefordo while
goto 语句
1.什么是语句
C语句可分为一下五类:
表达式语句函数调用语句控制语句复合语句空语句
在此我们只要讲解控制语句。
C语言是一门结构化的程序设计语言
控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序语句,选择结果,循环结构)他们由特定的语句定义符组成,C语言有九种控制语句。
条件判断语句也叫分支语句:if语句、switch语句循环执行语句:so while语句、while语句、for语句转向语句:break语句、goto语句、continue语句、return语句
2.分支语句(选择结构)
如果你好好学习,校招时拿一个好offer,走上人生巅峰。
如果不学习,毕业等于失业,回家卖红薯。
这就是选择。
以上时双分支语句,我们还会学习到三分支和多分支。
2.1 if语句
单分支语法结构
if(表达式) 表达式的结果如果为真,语句执行
语句: 0表示假 非0表示真
双分支语法结构
if(表达式1)
语句1;
else
语句2;
多分枝语法结构
if(表达式1)
语句1;
else if
语句2;
else
语句3;
代码演示:
单分支的结构:
#include <stdio.h>int main(){int age = 0;scanf("%d", &age);if (age >= 18)printf("成年\n");return 0;}
如果年龄大于等于18
双分支结构:
#include <stdio.h>int main(){int age = 0;if (age >= 18)printf("成年\n");elseprintf("未成年\n");return 0;}
如果年龄大于等于18,否则打印未成年。
多分支结构:
#include<stdio.h>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("老年");elseprintf("老寿星");return 0;}
如果条件成立,要执行多条语句,怎应该使用代码块。
if语句默认只能控制一条语句,如果想控制多条语句,那么要加上{}。
else是和最近的if匹配
2.1.1练习
1. 判断一个数是否为奇数
2. 输出1-100之间的奇数
思路:判断一个数是否为奇数
一个整数%上2余1,他就是奇数,否则他就是偶数,我们输入一个数字,利用if语句判断。
#include<stdio.h>int main(){int a = 0;scanf("%d",&a);//判断是否为奇数if (a % 2 == 1)printf("奇数");elseprintf("偶数");return 0;}
思路:输出1-100之间的奇数
首先我们要生成1—100的数字,再判断他是不是奇数,是奇数我们就打印
#include<stdio.h>int main(){int a = 0;while(a <= 100){if (a % 2 == 1){printf("%d\n",a);}a++;}return 0;}
当然,我们还有另一种效率更高的方法,我们可以找到规律,每个奇数中间相差2。
#include<stdio.h>int main(){int a = 1;while (a <= 100){printf("%d",a);a += 2;}return 0;}
2.2 switch语句
switch也是一种分支语句。
常常用于多分枝的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
#include<stdio.h>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");elseprintf("星期日\n");return 0;}
我们可以写成if...elseif...elseif...else if...,但是太过于复杂,那么我们就可以视为switch语句。
switch(整形表达式)
{
语句项:
}
而语句项是什么呢?
是一些case语句
如下:
case整形常量表达式:
语句:
#include <stdio.h>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 <stdio.h>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 <stdio.h>
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语句