什么是流程控制
定义:程序代码执行的顺序
流程控制的分类
顺序执行
按照代码顺序执行
选择执行
定义:某些代码可能执行,也可能不执行,有选择的执行某些代码
if
if最简单的用法
if(表达式){
语句; //若表达式为真则执行语句,否则不执行
}
if的范围问题
if(表达式)
语句A;
语句B;
if默认只控制语句A的执行与不执行,不控制语句B,即B一定会被执行
if(表达式){
语句A;
语句B;
}
此时if可控制AB
注:if默认只控制一个语句的执行
if else的用法
if(表达式){
语句A;//若表达式为真执行A;
}
else{
语句B;//若表达式为假执行B;
}
注:else默认只控制一个语句的执行
else后不跟表达式
if…else if…else的用法
if(表达式1)
语句A;//若1成立执行A
else if(表达式2)
语句B;//若1不成立2成立执行B
else if (表达式3)
语句C;//若12不成立3成立执行C
else
语句D;//若123不成立则执行D
switch
int i;
switch(i){
case 1:
语句A;
break;
case 2:
语句B;
break;
default:
语句C;
break;
}
注:没有break则按顺序执行,case是程序入口,一旦找到入口程序将从入口按顺序执行,不再进行判断(switch只进行一次判断),break是程序出口。
循环执行
定义:某些代码会被重复执行
for循环
for(int i=1; i<=4;i++){
语句A;
}
for语句执行顺序:先执行int i=1,再判断i<=4,若i<=4为真,则执行语句A,最后执行i++,再对i<=4进行判断
注:i++与++i的区别
a = i++ 相当于a=i, i=i+1,即先赋值再计算;
a = ++i 相当于i=i+1,a=i,即先计算再赋值;
嵌套for循环
for(1;2;3)
for(4;5;6)
A;
B;
上述表达式执行顺序(循环一次):1-2-4-5-A-6-5-3-2-B
while循环
while(表达式)
语句A;
do while循环
主要用于人机交互
do{
}while(表达式);
注: while和for可能一次都不会执行,但是do while至少执行一次。
break和continue
break
用途
- break如果用于循环用来终止循环
- break如果用于switch,用于终止switch(程序出口)
- break不能直接用于if,除非if属于循环内部的一个子句
break用于for循环
int i;
for(i=0;i<3;i++){
if(3>2)
break;//OK,用于终止外部for循环
}
int i,j;
for(i=0;i<3;i++){
for(j=1;j<4;j++){
语句A;
break;//OK,终止第二个for循环
}
}
break用于switch
int x,y;
switch(x){ //第一个switch
case 1:
switch(y){ //第二个switch
case 0:
语句A;
break;//终止的是第二个switch
}
break;//终止的是第一个switch
}
注:在多层for循环中,break只能终止距离它最近的循环;
在多层switch嵌套中,break只能终止距离它最近的switch;
continue
用途
用于跳过本次循环余下的语句,转去判断是否需要执行下次循环
for(1;2;3){
语句A;
语句B;
continue;//若执行该语句,则执行完AB后直接执行表达式3,不执行语句C
语句C;
}