C语言(三)

什么是流程控制

定义:程序代码执行的顺序

流程控制的分类

顺序执行

按照代码顺序执行

选择执行

定义:某些代码可能执行,也可能不执行,有选择的执行某些代码

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;
}

   转载规则


《C语言(三)》 fightingtree 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录