目录
用户一般会把实现某些功能的语句整合在一起,构成一个语法单元;C语言标准的语法单位也被称为块,称为块语句
1、复合语句
//C语言程序的基本单位:函数
//函数由语句组成,函数都需要配合语句一起使用
//复合语句是可以嵌套的,复合语句中也可以为空
int main(int argc,const char *argv[])
{//最外层的复合语句作为父语句
int a=10;
for(int i=0;i<10;i++)
{//复合语句内部嵌套的复合语句作为子语句
int a=20;
printf("%d\n",a);//如果父语句中和子语句中定义了相同的变量,则在子语句中采用“就近原则”
}
return 0;
}
2、表达式语句
表达式语句
express(opt);
//表达式是可选的
int main()
{
; //一个;表示一个空语句
;
;
;;;;;;;; //很多个空语句,编译不会报错
int a = 10;
int b = 20;
printf(“a+b=%d\n”,a+b);
int sum = 0;
sum = a + b;;; //编译不会报错
printf("sum=%d\n",sum);
}
3、选择分支语句
选择语句
//1.针对一种情况
if (expression) //expression潜规则——非0即真
{
statement1;
statement2;
statement3;
.........
statementn;
}
//当表达式为真时,则会执行statement
//如果表达式为假,则不执行statement。
//2.针对两种情况
if (expression) //expression潜规则——非0即真
{
statement1;
statement2;
statement3;
.........
statementn;
}else{
statement1;
statement2;
statement3;
.........
statementn;
}
//当if语句的表达式不成立时,则会执行else对应的语句。
//3.针对多种情况
//用于表示多分支选择,需要配合标签语句一起用:
switch( 表达式 ) //表达式结果必须是整型
{
case 常量表达式1 : 待执行的语句1
case 常量表达式2 : 待执行的语句2
case 常量表达式3 : 待执行的语句3
case 常量表达式4 : 待执行的语句4
default : 待执行的语句n
//当所有的case语句都不满足时才会执行default!!!
}
4、标签语句
标签语句
/********************************************
C语言标准中提供了3种标签语句
其中使用频率较高是case标签和default标签
case和default都是C语言的关键字之一
case具有匹配的含义,default具有默认的含义。
*******************************************/
1.case标签的常量表达式的结果必须是整型常量
2.并且case标签必须是互斥的(不能出现重复的情况,会导致二义性)。
3.case标签语句和default标签语句只能在switch语句中使用
4.对于普通的标签语句是可以在跳转语句中使用的。
5.switch语句应该结合break语句,目的是利用break语句终止switch语句,避免多个标签都被执行。
5、跳转语句
跳转语句
/*********************************
C语言标准中提供了四种跳转语句
1.goto语句
2.continue语句
3.break语句
4.return语句。
跳转语句可以跳转到其他位置
********************************/
1.break语句只能用于switch语句中
2.break语句可以终止switch语句或者循环语句
3.break语句用于跳出循环体
4.continue用于终止本次循环,继续执行下一个循环
5.return用于跳出该函数
6、循环(迭代)语句
循环语句(迭代语句)
/**********************************************
C语言标准中提供了3种迭代语句给用户完成重复性的工作
迭代也可以理解为循环,可以重复执行某个代码块。
**********************************************/
//1.do-while()
do
{
循环体;
}while(expression);
//至少执行一次循环体
//先执行一次循环体,再对条件表达式进行判断,条件为真继续执行循环体,条件为假,退出循环
//2.while
while(expression)
{
循环体;
}
//先判断条件表达式是否为真,为真执行循环体,为假退出该循环
//可能循环体一次都没有被执行
//3.for
for(expression1;expression2;expression3)
{
循环体;
}
//先执行expression1,且最先执行,只执行一次
//然后判断expression2是否为真,为真则执行循环体;循环体执行完毕之后,执行expression3
//继续判断expression2,直到expression2为假,退出循环