//单分支语句
if (表达式语句){
语句1;
...
语句N;
}
//双分支语句
if (表达式语句){
语句1;
...
语句N;
}else{
语句1;
...
语句N;
}
//多分支
if (表达式语句){
语句1;
...
语句N;
}else if(表达式语句){
语句1;
...
语句N;
}else{
语句1;
...
语句N;
}
在分支语句中,表达式为真(非0)执行{ }代码块中的内容,表达式为假(0)不执行{ }代码块中的内容。
2.1.1代码块
代码块:在C语言中,如果要执行多条语句,可以用{ }来进行执行。
#include2.1.2悬空else else只会匹配离他最近的ifint main(){ int a = 1; //如果不加{}只会执行if后面的第一条语句 if(a > 2) printf("成功执行了1"); printf("成功执行了2"); //如果加{}可以同时执行多条语句 if(a < 2){ printf("成功执行了1"); printf("成功执行了2"); } return 5201314; }
#include2.2switch语句int main(){ int a = 1; int b = 2; if(a > 2) if(b < 2) printf("成功执行了2"); else printf("执行了"); return 5201314; }
switch(整型表达式){
//语句项;
case 整型常量表达式:
语句1;
...
case 整型常量表达式:
语句N;
...
default:
语句N+1;
}
2.2.1switch语句(break)
在switch语句中,我们无法直接实现分支,需要搭配break来进行使用。
#include2.2.1 switch语句(default) default:在switch语句中,当所有条件都不匹配的时候,无论default在switch语句中那个位置,都会最后执行该语句(最好放在switch语句的最后一句)。int main(){ int day = 2; switch(day){ case 7: case 6: printf("休息"); break; case 5: case 4: case 3: case 2: case 1: printf("上班"); break; default: printf("输入的什么玩意"); break; } return 5201314; }
#include3.循环语句 C语言中,引入while循环语句,可以实现循环。 3.1while循环(判断循环首)int main(){ int day = 8; switch(day){ case 7: case 6: printf("休息"); break; case 5: case 4: default: printf("输入的什么玩意"); break; case 3: case 2: case 1: printf("上班"); break; } return 5201314; }
while(表达式){
语句1;
...
语句N;
}
3.1.1while循环中的跳出循环(break)
#include3.1.2while循环中的结束本循环(continue)int main(){ //while 首先要在表达式内进行判断 //如果为真,执行括号中的语句 //如果为假,不执行括号中的语句 int i = 0; while(i < 10){ printf("%d", i); i++; break; //不论循环多少次,直接跳出循环 } return 5201314; }
#include总结:break和continue的区别 break:终止循环,执行之后只要遇见他,while语句直接失效,调到while语句的下一个兄弟语句。 contine: 结束本次循环,执行之后遇见他,while内部代码块不执行了,回跳到while语句表达式。 区别:break结束了while语句的生命周期,continue相当于重头再来一遍while的循环。 3.2 for循环语句(计次循环首)int main(){ //while 首先要在表达式内进行判断 //如果为真,执行括号中的语句 //如果为假,不执行括号中的语句 int i = 0; while(i < 10){ if(i == 2) { i++; continue; //结束本次循环,后边的内容均不执行 } printf("%d", i); i++; } return 5201314; }
//初始化表达式:在循环之前初始定义一个值,只执行一次。
//条件判断表达式:在循环进行中进行判断。
//结束表达式:在本次循环之后,执行一次结束表达式
for(初始化表达式;条件判断表达式;结束表达式){
语句1;
...
语句N;
}
3.2.1 for 与 while的利弊
#includewhile循环和for循环一般情况下都要有三个必须条件,while循环语句的缺点三个表达式太分散,for循环语句可以简洁用一行进行表示。 3.2.2for循环中break和continueint main(){ //while循环语句 //初始表达式 int i = 0; //条件判断表达式 while(i < 1){ //控制变量表达式(结束表达式) printf("perfect"); i++; } //for循环语句 //初始表达式;条件判断表达式;控制变量表达式 for(int i = 0; i < 1; i++){ printf("perfect"); } return 5201314; }
#include3.2.3for循环语句控制变量 1.尽量不要在for循环体内进行变量修改。 2.建议for循环语句的控制变量表达式的取值采取"前闭后开区间"写法。int main(){ //for循环语句 //初始表达式;条件判断表达式;控制变量表达式 for(int i = 0; i < 2; i++){ printf("perfect"); //终止for循环 break; } for(int i = 0; i < 2; i++){ printf("perfect%d",i); //跳出本次循环(执行控制变量表达式) continue; } return 5201314; }
int main(){
int i = 0;
//"前闭后开区间" 循环次数-1
for(i = 0; i < 10; i++){}
//"前闭后闭区间" 循环次数+1
for(i = 0; i < 10; i++){}
return 5201314;
}
3.3do...while循环语句(循环判断首)
do
{
语句1;
...
语句N;
}while(条件表达式);
3.3.1 do...while语句的特点
先执行一次循环体,在对其进行判断。
#includeint main(){ int i = 0; //先接受用户输入的数字 do { scanf("%d", &i); }while(i < 10); //执行完循环体后在进行判断 return 5201314; }
3.4 goto语句
C语言中,提供了直接可以跳出多层循环的goto语句。break只能跳出一个循环语句。
#includeint main(){ int i = 0; int j = 0; for(i = 0;i < 10; i++){ for(j = 0; j < 10; j++){ printf("%d %dn", i, j); //当i=2,j=2时,执行goto语句可以任意跳跃 if(i == 2 && j == 2){ goto error; } } error: printf("满2了"); } return 5201314; }
作业
1.计算10!(for,while,do...while)
2.计算1!+2!+...+10!
3. 在一个有序数组中查询某个数字n。(二分法)
4.一个无序数组用二分法进行排序。
5.找一个1w以上最小的素数。
6.写一个斐波那锲数列的函数。



