目录
C语言语句
C语言:结构化程序设计语言
语句:C语言中由一条“;”隔开的就是一条语句(单个;也为语句,其是空语句)。
程序的流程结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应的功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
C语言表式真假的方式
- 真:!0
- 假:0
分支语句和循环语句
分支语句
- if
- switch
循环语句
- while
- for
- do……while
goto语句
选择语句
if语句
//单分支1
if(表达式){
……语句;……}
//单分支2
if(表达式){
……语句;……}else{
……语句;……}
//多分支
if(表达式1){
……语句1;……}else if(表达式2){
……语句2;……}else{
……语句3;……}
注意:如果大括号内只有一条语句的话,那么大括号可以省略不写。
以多分支为例if后面表达式为真就执行后面的语句,否则到下面的else if看后面括号内的表达式是否为真,为真则执行后面的语句否则继续向后寻找为真的表达式,如果都没有找到那么就会执行else后面的语句。
int a = 60;
if (18 < a < 26) {
printf("青年");
}
//正确写法如下
int a = 60;
if (18 < a && a<26) {
printf("青年");
}
上面的代码结果仍然会打印青年,其执行逻辑为
1.60>18为真——此式子结果为1
2.1<26为真——此式子结果为1
最终导致整体式子为1(为真)
else与if匹配原则——else与离得最近的if进行匹配
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("b=2");
else
printf("a!=1");
//这里else与第二个if匹配
switch语句
switch分支常用于多分支的场景
//switch语句基本语法
switch(整形表达式){
case 整形常量表达式1:……语句1;…… break;
case 整形常量表达式2:……语句2;…… break;
case 整形常量表达式3;……语句3;…… break;
default: ……语句4;……
}
注意:“:”后面如果有多个语句的话尽量用{}括起来(不加也可以,只要用好break即可),这里面的整形用字符型也可以,因为字符型也属于整形的一种,其底层存储的是字符的ASCII码值。
关于switch语句
如果不加break语句switch语句会从上往下找符合上面给的条件的整形常量表达式(在没找全case之前会跳过default语句),找到之后开始执行后面的语句从上往下依次执行,也包括default后面的语句(前提:default语句在后面),如果都没找到,那么就跳回到之前的default语句开始向后执行所有语句。
switch语句的case作为入口,break作为出口,这样才做到了真正的分支。
循环语句
break与continue的区别
- break:永久终止循环。
- continue:终止当前循环,跳到下一次循环。
while循环
//语法结构:
while(表达式){
——语句;——}
注意:如果里面仅有一个语句的话,则{}可省略。
理解:表达式为真,那么就会执行循环体,然后再此判断表达式是否为真,如果为假,则跳出循环体。
for循环
//语法规则:
for(表达式1;表达式2;表达式3){
——循环语句;——}
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断部分,用于判断循环什么时候终止(表达式2为假时)。
表达式3为循环调整部分,用于循环条件的调整。
执行顺序:
表达式1——>表达式2——>语句——>表达式3——>表达式2——>语句——>……
经典for循环代码
void main() {
//需求:打印1——4,6_10
int i = 0;
for (i= 1; i <= 10; i++) {
if (i == 5)
continue;
printf("%d ", i);
}
}
//这里执行continue之后跳过当前循环依然会执行i++语句
for循环变种
//变种1
void main() {
int i = 0;
for (; ;) {
printf("%d ", i);
}
}
判断条件的省略致使for循环为死循环。
//变种2
void main() {
int x,y;
for (x=0,y=0;x<2&&y<5;++x,y++) {
printf("haha");
}
}
do……while语句
//语句语法:
do{
——语句项;——}while(表达式);
特点:先执行语句——>判断表达式是否为真,为真则继续执行循环体,为假则跳出循环。
经典do……while语句
//需求:打印1——10
int i = 1;
do {
printf("%d ", i);
i++;
} while (i <= 10);
goto语句
作用:无条件跳转语句
语法:goto 标记;
解释:若标记的名称存在,执行到goto语句时,会跳转到标记的位置
#include <stdio.h>
//这里的表现是个死循环
void main() {
flag:
printf("begin\n");
printf("end\n");
goto flag;
}
goto语句最常用的用法是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或者多层循环;
注意: goto语句只能在一个函数内跳转,不能跨函数;