转载

C 流程控制

流程控制

顺序结构 : 默认的流程结构 按照书写顺序执行每一条语句

选择结构 : 对给定的条件进行判断 再根据判断结果来决定执行哪一段代码

循环结构 : 在给定条件成立的情况下 反复执行某一段代码

C 流程控制

选择结构

1. if

#include <stdio.h> int main() {   /*    1> if的第一种结构    if(条件) {     语句1;     语句2;     ...    }    条件成立 {}里面的代码才会执行    */   int money = 6000;   if(money >= 5000) {     printf("大保健/n");   }   /*    2> if的第二种结构    if(条件) {     语句1;     语句2;     ...    }else {     语句1;     语句2;     ...    }    不是第一个{}里面的代码被执行 就是第二个{}里面的代码被执行    */   if(money >= 5000) {     printf("大保健/n");   }else {     printf("好好上班/n");   }   /*    3> if的第三种结构    if(条件1) {     语句1;     ...    }else if(条件2) {     语句1;     ...    }else if(条件3) {     语句1;     ...    }else {     语句1;     ...    }    只有一个{}里面的代码被执行 条件判断顺序从上到下    */   if(money == 5000) {     printf("大保健/n");   }else if(money == 4000) {     printf("好好上班/n");   }else if(money == 3000) {     printf("回家种田/n");   }else {     printf("唉!!!/n");   }   /*    4> if的第四种结构    if(条件)     语句1;    语句2;    ...    这种情况比较特殊 条件是否成立只会影响语句1;    之后的语句2... 都和条件无关    想要都影响 就用{}括起来    这种写法要注意: 如果要在if后面的语句中定义新的变量 必须用{}包住    */   return 0; } 

2. switch

#include <stdio.h> int main() {  int a = 10;  switch(a) {   case 0:    printf("这是一个0");    break;   case 5:    printf("这是一个5");    break;   case 10:    printf("这是一个10");    break;   default:    printf("什么也不是");    break;  }  return 0;  //break: 退出switch语句  //default: 当前面的case都不匹配的时候就会执行  //注意: 如果case后面没有break 就会执行后面所有case中的语句 直到遇到break为止  //注意: 如果要在case后面定义新的变量 必须用{}包住 } 

3. if switch 的对比

1 > if 语句能完成的功能 switch 不一定能完成

2 > switch 语句能完成的功能 if 都能完成

3 > if 用得比较多 比较灵活 switch 只能某个单值

循环结构

1. while

#include <stdio.h> int main() {  /*   while(条件) {   循环体   }   */  int count = 0;  while(count < 30) {   ++count;   if(count%10 == 0) {    continue;   }   printf("hello world! 第%d次/n", count);   if(count == 28) {    break;   }  }  return 0;  //continue: 跳出本次循环 进入下一次循环  //break: 退出整个循环  //特点: 只有条件成立才会执行循环体  //注意: 死循环 while(3) { printf("死循环/n"); } } 

2. do while

#include <stdio.h> int main() {  /*   do {   } while(条件);   */  int i = 0;  do {   i++;  } while(i < 8);  printf("i = %d/n", i);  return 0;  //特点: 不管条件是否成立 一定会执行一次循环体 } 

3. for

#include <stdio.h> int main() {   /*    for(语句1; 条件; 语句2) {     循环体    }    语句1: 初始化语句    语句2: 增量语句(执行完循环体后再执行的语句)    1.for一开始就会执行一次 语句1(整个for循环只会执行一次)    2.判断条件是否成立 如果条件成立 就会执行一次循环体 然后就会执行语句2 再次判断条件是否成立...    */   for(int i = 0; i < 30; printf("i = %d/n", i), i++) {}   for(int i = 0; i < 30; printf("i = %d/n", i), printf("哈哈/n"), i++) {}   for(int i = 0; i < 30; i++) {     printf("i = %d/n", i);   }   return 0;   //注意: 不要随便在for()后面加分号   //注意: for循环体内部变量的作用域   //死循环 for(;;); } 

4. while 循环和 for 循环的比较

可以互换

for 循环的变量可以及时回收

break continue

1. break 使用场合

1 > switch 语句 : 退出整个 switch 语句

2 > 循环结构 ( while | do while | for ): 退出整个循环语句

3 > 循环嵌套下的 break : 只对最近的循环结构有效

2. continue 使用场合

1 > 循环结构 ( while | do while | for ): 跳出本次循环 进入下一次循环

2 > 循环嵌套下的 continue : 只对最近的循环结构有效

正文到此结束
Loading...