C语言基础知识学习之程序结构
一 程序结构
程序结构可以分为:顺序、 分支和循环
1分支结构(if-else)
1)if-的使用形式
如果条件为真执行语句块1,否则跳过。
If(常量/变量/表达式){
语句块1;
}
2) if –else形式
如果条件为真执行语句块1,为假执行语句块2。
If(常量/变量/表达式){
语句块1;
}else{
语句块2;
}
3)if-else 嵌套形式
if(常量/变量/表达式){
if(常量/变量/表达式){
语句块1;
}else{
语句块2
}
}else{
语句块3
}
4) if语句高级用法
逐次判断if的条件 如果条件为真,执行当前语句块,执行完结束,否则判断下一个if条件,如果条件为真,执行当前语句块。依次执行,如果条件都不为真执行最后的else里的语句块。
if(常量/变量/表达式)}{
语句块1;
}else if(常量/变量/表达式){
语句块2;
}else if(常量/变量/表达式){
语句块3;
}
5) If语句的使用注意事项
a, if(常量/变量/表达式); 无论真假,都不执行。
b, if后如果只有一句话。则可以省略大括号
if(常量/变量/表达式)
语句;
c, 永真式和永假式
永真式 if(1)
永假式 if(0)
d,if语句中return
一个函数中,可以有多个return语句,但只执行一个。
在一个函数中,执行return之后,return之后的语句不会执行。
e , if的作用域
作用域为if之后的大括号开始到大括号结束。
f 大括号的匹配
避免匹配麻烦,不要省略大括号。
2 分支结构(switch)
首先计算表达式的值。并逐个与其后的常量表达式的值进行比较,当表达式的值与常量表达式的值相等时,执行其后的语句,执行完毕后break跳出switch语句。。
1)使用形式:
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
……
default:语句n+1;
}
2)注意
a , case具有向下穿透作用,执行完当前case后语句时,如果语句后没有break程序将继续向下执行之后case后的语句,直到遇到break或者执行到语句末为止。
b, 可以用在不同常量表达式对应的语句块相同时使用。
c, switch语句的表达式类型
可以是整型常量(5);可以是整型变量();可以是转换为整类型的表达式(‘a’);还可以是返回值为整形的表达式(5+4)。
d, case后的值只能是常量(1)或者常量表达式(8+8)
e ,default位置可以放在任意位置
f , case可以穿透到default语句。
h ,default语句如果放在最后是可以省略break 如果不是最后不可以省略。
注意: if分支结构和switch分支转换
如果分支比较多且无法穷尽的时候尽量使用if。
如果分支不是很多,但是使用if代码量比较大是时候可以使用switch。
switch比较清晰条理,if注意嵌套。
4 循环结构(while)
循环结构的特点:先判断循环条件,当给定的条件成立时,反复执行某程序段,循环一次判断一次条件,直到条件不成立为为止。给定的条件称为循环条件,反复执行的程序称为循环体。
1)while的格式
while(条件表达式){
循环体;
}
例
计算1+2+3+……+100的值
#include <stdio.h>
int main()
{
int i, s=0;
for(i = 1; i <= 100; i ++)//循环遍历。
s+=i;//累加。
printf("%d\n", s);//输出结果。
return 0;
}
2) 注意
while循环结构的条件
a ,循环控制条件 b 循环体 c 跳出循环的条件(否则会构成死循环)
b ,当一个变量与一个常量进行关系比较时通常把常量写在前面 while(1==a)
3) while后的语句只有一句话时可以省略大括号。
while(i++<=100) sum+=i;
3)while作用域:从while后的大括号开始,到大括号结束。
5 循环结构(do-while)
1) do-while格式
do{
循环体;
}while(循环条件)
2)while和do-while区别
while是当型循环,先判断循环条件,当条件成立时,才执行循环体。
do-while是直到型循环,先执行循环体,再判断循环条件,直到循环条件不成立。
do-while循环不管循环条件是否成立,循环体都会先执行一次
6 循环结构(for)
可以使用域循环次数明确的情况,也可以使用于循环次数不确定的情况。完全可以替代while语句。
1)for循环格式
for(表达式1; 表达式2;表达式3){
循环体;
}
表达式1为循环变量初始化表达式,定义循环变量或者赋初值。如果之前定义了可以省略。
表达式2 为条件表达式,表达式成立时执行循环体,如果循环体中有跳出循环的条件语句,可以省略。
表达式3 循环变量控制表达式,没次执行之后,变量进行更改。可以写在循环体中。
2) 循环嵌套
例
打印9-9乘法表
#include<stdio.h>
int main(){
int i,k;
printf("九九乘法表:\n");
for(i=1;i<=9;i++){
for(k=1;k<=i;k++){
printf("%dx%d=%d ",i,k,i*k);
}
printf("\n");
}
}
break语句和continue语句的区别
3) break 关键字及break语句
break可以用在循环中,用来跳出循环,break用在switch中可以跳出switch而执行switch之后的语句。break在循环中只能向外跳出一层。
4) continue
结束本次循环,继续下次循环。





