在c语言中,将表达式后带:,即称为一条语句
a+=b;
在C语言中最简单语句为;---空语句,一般作用是消耗时间,
使用{}括起来的一条或多条语句,称为复合语句,算一条语句
在C语言中,共计9中控制语句
语句分类:
顺序语句
在C语言程序中,除了以下9种控制语句之外,全部为顺序语句。从main函数开始顺序执行
分支语句
1.1 单分支语句 if…else
标准格式
if(表达式){}
else{}
执行流程:判断表达式的值,如果为真则执行语句块1,否则执行语句块2
注意:1. 最简形式为条件运算符:?:
2. {}可以省略,有且仅有一条语句时
3. ()后一般不带分号
4. if else 后可以没有else,如果为真执行语句块,否则跳过
5. if else 支持阶梯形式(不是嵌套,多种情况选择其中一个)
if()1
Elase if ()
Else if()
Else
6.If else 支持嵌套,但是建议不超过4层
1.2 多分支语句 switch case
标准格式
switch(整数表达式)
{
Case 整数常量1:语句块1;break;
Case 整数常量2:语句块2;break;
…
case整数常量3;语句块3;break;
default;
语句块
}
执行过程:计算整数常量表达式的值,并与整数常量进行匹配,如果匹配上,则执行相应的语句块,如果都没有匹配上,则执行default语句。
注意事项:
1.case后整数常量,不能是实数,不能是字符串,不能是范围,不能是表达式
2.switch后整数表达式,不能是实数,不能是字符串,不能是范围
3.default语句可以没有,如果没有default语句,没有匹配上case时,直接跳过switch语句
4.break语句是唯一可以直接结束switch的语句,但break可以没有----当case匹配上时,执行对应的语句块,没有break时,继续向下执行,直到第一个break语句才能跳出
5.switch语句可以嵌套,但建议不超过4层,太多时间复杂度太大,执行程序需要的时间过多。
循环语句
重复地执行相应的语句块
循环必须存在结束条件,否则为死循环
for循环
标准格式
for(表达式1;表达式2;表达式3)
{
循环体语句
}
执行过程:
1.先执行表达式1,有且只执行1次
2.判断表达式2的值,如果为真则执行循环体语句
如果为假则循环结束
3.执行完循环体语句后,继续执行表达式3,跳转至第二步
注意事项:
1.for循环中;不能用,:代替,也不能省略
2.for循环中表达式1可以省略,但表达式1需要在循环之前出现;表达式3也可以省略,需要在循环体尾部出现;表达式2也可以省略,for(;;),表示死循环
3.for循环中{}可以省略,有且只有1条语句时
4.for循环支持break结束循环;支持continue继续循环(结束本次循环)
5.支持嵌套,建议不超过4层
while循环
标准格式 while(表达式)
{循环体语句}
执行过程:判断表达式的值,如果为真执行表达式语句,如果为假,循环结束
注意事项
1.while循环的()后不能跟;
2.while循环的{}可以省略,但是有且仅有一条语句时才能省略
3.while循环的死循环为while(1);
4.while循环支持break结束循环,跳转至{}外
continue结束本次循环,跳转至表达式
do…while循环
标准格式:do {循环体语句}
while(表达式);
执行过程:先执行循环体语句,在判断表达式的值,如果为真继续执行,如果为假则结束
注意事项:
1.do while语句()后要带; 唯二的,
2.区分while和do while的区别: while先判断后执行,do while先执行后判断
3.do while的死循环为do{}while(1);
4.do while支持break结束循环,跳转至{}外
continue结束本次循环,跳转至表达式
5.do while支持嵌套,但建议不超过4层
goto循环------不推荐使用
辅助语句
break
continue
return
小练习
1.输入学生成绩,0-100,输出a90-100, b80-90以下,70-80c,60-70d,60以下不及格
2.请输入年月日,计算这一天是今年的第几天switc
3.输出1000以内
3.1.7的倍数
3.2.包含7的数字
3.3.任意数
4.输入一个数字,判断这个数字是不是素数,如果是打印是,不是打印不是
for(i=2;i<-sqrt(n);i++)
gcc sushu.c -lm
pow(x,y)
abs(x) |x|---int型
fabs(x) |x|---浮点型
5.求M阶乘
6.1+1/2+1/3+…1/n>15 n=?
7.公交收费:每三站收5毛,不分类算法
Fee=(s-1)/3*0.5+0.5
……
每n站收5毛:
Fee=(s-1)/n*0.5+0..5