什么是语句?
c语言语句可以分为以下三类:
1.表达式语句:在表达式后面添加一个分号就是表达式语句。例如:“y=x+8;”就是一个表达式 语句。(最常用的表达式语句是复制语句和函数调用语句)
2.复合语句:由多条语句组成,这多条语句用花括号括起来,作为一条语句。执行时,按括号内语句先后顺序依次执行语句。(常用于if的分支语句、循环结构的循环体语句等)
3.空语句:单独的“;”是一条空语句,其功能是计算机不做任何事,空操作一次。(该语句不常用,有时做循环体语句)
分支语句(选择结构)
if语句
1.语法形式
//单分支if语句
if(表达式)
语句; //若表达式成立,则执行语句;若表达式不成立,则执行if语句的后续语句
//双分支if语句
if(表达式)
语句1; //若表达式成立,则执行语句1
else
语句2; //若表达式不成立,则执行语句2
//多分支if语句
if(表达式1)
语句1; //若表达式1成立,则执行语句1
else if(表达式n)
语句n; //若表达式n成立,则执行语句n
...
... //此处省略若干个语句
else
语句n+1; //若以上表达式都不成立,则执行语句n+1
//嵌套if语句
if(表达式1)
{
if(表达式2)
语句1;
else if(表达式3)
语句2;
...
else
语句n;
}
else if(表达式4)
语句n+1;
...
else
语句2n;
注意:if判断表达式是否成立返回的值为0/1,1为真,0为假
当存在多条语句时,需要加上{ }
if(表达式) { 语句1; 语句2; . . . 语句n; }
2.else与if的匹配原则
下面看一段代码:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
if(a == 1) //第一个if
if(b == 2)
printf("hehe\n");//第二个if
else
printf("haha\n");
return 0;
}
这段代码会报警告
由于没有控制代码块的缩进及使用{ }来控制,编译器不知道此处的else与哪一个if相匹配。
但是根据else与if的匹配原则:else与前面最靠近它的还没有与其他if匹配过的if匹配,且用花括号可以改变else与if之间的匹配关系。
因此在日常写代码的时候,排版十分重要,我们需要养成一个良好的代码排版习惯。
Switch语句
1.语法形式
switch(整形常量表达式)
{
case 1: 整形常量表达式1;
语句1;
break;
.
.
.
case n: 整形常量表达式n;
语句n;
break;
default: 整形常量表达式n+1;
}
case决定了语句从哪里进入,break决定了语句从哪里退出。
如果不加break,则继续执行下一case语句,直到走完全部case语句。执行break后,就跳出switch语句。
注意:表达式的值必须为整形常量或者字符型常量
case语句不要求一定要按顺序写
default语句可以放在任意位置
case语句可以为空语句,若为空语句,则公用后面case中的语句组
default部分可以省略
2.switch语句的嵌套使用
switch(整形常量表达式)
{
case 1:
语句1;
break;
...
case n:
switch(整形常量表达式)
{
case 1:
语句1;
break;
...
case n:
语句n;
break;
default:
语句n+1;
break;
}
default:
语句n+1;
break;
}
循环语句(循环结构)
while循环
1.语法形式
while(表达式)
循环语句;
此处的括号也是通过表达式的返回值1/0来判断真假,从而判断是否执行循环语句。
while语句是先判断,后执行。
2.while循环中的break与continue
break:强制终止循环,跳出循环后,转循环语句的后续语句执行(break语句只能跳出一层循环,若想要跳出多层循环需使用goto语句)
continue:跳过循环体中余下的语句,并继续执行下一次循环
由以上定义可以推出,while循环结构中,break用于永久终止循环,而continue只终止本次循环,跳转到下一次循环的判断部分。
for循环
1.语法形式
for(表达式1,表达式2,表达式3)
循环语句;
表达式1:初始化部分,用于初始化循环变量
表达式2:条件判断部分,用于决定循环什么时候终止
表达式3:调整部分,用于循环条件的调整
for循环的三个表达式均可省略,但是,for循环的判断部分如果被省略,则判断条件恒为真/为1(即死循环),因此不建议随意省略判断部分。
for循环的控制变量是可以存在多个的
建议:1.不可以在for循环体内改变循环变量,防止for循环失去控制
2.建议for语句的循环控制变量的取值采用“前闭后开区间”的写法
( 比如for(i = 0;i <10;i++))
2.for语句的执行过程
1.先计算表达式1
2.计算表达式2,若其值为真,执行循环体语句后转第3步;若其值为假,则跳出循环
3.计算表达式3,然后转第2步继续
3.for循环中的break与continue
与while循环中基本一致
4.for循环的嵌套结构
for(表达式1,表达式2,表达式3)
{
for(表达式4,表达式5,表达式6)
{
循环语句;
}
}
do while循环
1.语法形式
do
{
循环语句;
}while(表达式);
do while语句是先执行,后判断。(循环至少会执行一次)
2.do while循环中的break与continue
与while循环中基本一致
goto语句
1.一般形式: goto标号;
2.功能:跳转到标号所标识的语句执行。其中,标号按照标识符的规则命名。
注意:goto语句使用不当会降低程序的可读性,因此不提倡在程序中使用goto语句
goto语句可以跳出多层循环