目录
一.语句与结构
1.语句
- 表达式语句
- 函数调用语句
- 控制语句
- 符合语句
- 空语句
2.控制语句
用于控制程序的执行流程,以实现程序的各种结构方式
(1).条件判断语句(分支语句)
if语句、switch语句
(2).循环执行语句
do while语句、while语句、for语句
(3).转向语句
break语句、goto语句、continue语句、return 语句
3.基本结构
- 顺序结构
- 选择结构
- 循环结构
二.分支语句(选择结构)
1.if语句
(1).语法结构
单分支
if(表达式)
语句;
双分支
if(表达式1)
语句;
else
语句;
多分支
if(表达式1)
语句;
else if(表达式2)
语句;
......
else if(表达式n)
语句;
else
语句;
表达式为真,执行对应语句
(2).多条语句
当需要多条语句时,使用
{
语句1;
......
语句n;
}
一对{}就是一个代码块
(3).悬空else
else与其最近的if匹配
例如:
#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;
}
//结果将为hehe
(4)其他
- 单条if语句只有一条分支的语句被执行
- if语句可以嵌套使用
- 整个if语句算作一条语句
2.switch语句
(1).语法结构
switch(整形表达式)
{
case 1:
语句;
break;
......
case (整形常量表达式):
语句;
break;
default:
语句;
break;
}
当整形表达式为n时,若存在case n,则执行,否则执行default
(2).break的使用
- break的作用是在对应位置跳出循环
- 当case内不含break时,将持续向下执行其他case内的语句,直到遇到break
例如
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
default:
}
(3).其他
- default可以放在switch语句内的任何位置(建议放置在最后)
-
case可以与if嵌套使用
-
switch允许嵌套使用
三.循环语句
1.while循环语句
(1).语法结构
while(表达式)
循环语句;
expr:表达式 stmt:循环语句
(2).break与continue
int i=1;
while(i<=10)
{
printf("%d ",i);
i++;
}
//打印1~10
break用于完全结束一个循环,跳出循环体。
不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
int i=1;
while(i<=10)
{
if(i==5)
break;
printf("%d ",i);
i++;
}
//打印1~4
continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。(continue只能在循环语句中使用)
int i=1;
while(i<=10)
{
if(i==5)
continue;
printf("%d ",i);
i++;
}
打印1~4后死循环
(3).其他
while(1)中“1”恒为真,不断执行循环,常与break一起使用
2.for循环语句
(1).语法结构
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
等同于以下while循环语句
表达式1;
while(表达式2)
{
循环语句;
表达式3;
}
(2).表达式的省略
for循环中初始化、条件判断、调整都可省略(不熟练建议不)。若条件判断被省略,则恒为真
(死循环)。
(3).多变量
表达式中可以含有多个变量,表达式1与表达式3中使用“,”隔开,表达式2中根据逻辑关系选择
(4).常见问题
int i=0;
int j=0;
int count=0;
for(;i<3;i++)
{
for(;j<3;j++)
{
count++;
}
}
//由于j只初始化一次,j的for循环在第一次后使j初始值为3,导致count最终为3
(5).其他
- 优点:三个表达式在一起, 便于调整。
- 初始化表达式只执行一次。
-
break跳出循环,不进行本次调整
-
不可在for循环中改变循环变量,防止失控。
-
建议for循环控制语句循环变量的取值采用“前闭后开区间”的写法。
3.do while循环语句
(1).语法结构
do
循环语句;
while(表达式);
注意while(表达式后有“;”)