流程控制语句
顺序结构
是程序默认的执行过程
自上往下依次执行
分支结构
if
满足条件,执行指定代码
#include<stdio.h> int main() { int i = 2; if(i == 1) { printf("喜欢第一种\n"); } else if(i == 2) { printf("喜欢第二种\n"); } else { printf("喜欢第三种\n"); } return 0; }
switch
把所有选择列举出来,根据条件选择其一
执行流程:
首先计算表达式的值。
依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束,如果所有的case后面的
值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。
case穿透
每个case内都要写一个break停止,否则会一种往下执行,直到遇到break或把整个switch语句执行完毕,这种现象叫case穿透
#include<stdio.h> int main() { int i = 2; //其中的i输出的要是一个字符或整数 switch(i) { //case后的值也只可以是字符或整数 case 1: printf("喜欢第一种\n"); //每个case内都要写一个break停止,否则会一种往下执行,这种现象叫case穿透 break; case 2: printf("喜欢第二种\n"); break; case 3: printf("喜欢第三种\n"); break; //可以省略,也可写在任意位置 default: printf("还蛮挑\n"); break; } return 0; }
循环结构
for循环
格式:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}
变量仅在所属大括号内有效
#include<stdio.h> int main() { int i; for(i=1;i<4;i++) { printf("这是第%d遍循环\n",i); } return 0; }
while循环
格式:
while(条件判断语句)
{
循环体语句;
条件控制语句;
}
#include<stdio.h> int main() { int i = 1; while(i<4) { printf("这是第%d遍循环\n",i); i++; } return 0; }
for循环和while循环的适用场景
for:知道循环到次数或者循环的范围时使用
while:不知道循环的次数和范围,只知道循环的结束条件
do....while循环
格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
先执行后判断,所以循环体至少会执行一次
#include<stdio.h> int main() { int i = 4; do{ printf("这是第%d遍循环\n",i); i++; }while(i<5); return 0; }
无限循环
因无限循环停不下来,所以下面的代码无法执行
以下3个循环都是无线循环
#include<stdio.h> int main() { /*do{ printf("这是第n遍循环\n"); }while(1);*/ /*for(;;) { printf("这是第n遍循环\n"); }*/ while(1) { printf("这是第n遍循环\n"); } //下面的代码执行不了,因为循环一种没有停止 printf("停下来了吗\n"); return 0; }
跳转控制语句
break
不能单独书写,只可以写在switch里,或者循环里
表示结束,跳出
#include<stdio.h> int main() { int i; for(i=1;i<5;i++) { printf("这是第%d遍循环\n",i); //判断是否已经循环3次,如果是的话就停止循环 if(i == 3) { printf("循环3次就够了\n"); break; } } return 0; }
continue
结束本次循环,继续下次循环
只可以写在循环中
#include<stdio.h> int main() { int i; for(i=1;i<5;i++) { //当循环第3次时,停止本次循环,直接进行第4次循环 if(i == 3) { printf("我不要进行第3次循环\n"); continue; } printf("这是第%d遍循环\n",i); } return 0; }
循环嵌套
多重循环,嵌套执行
学习关键
-
在编写时先分好内循环和外循环,内循环是主要代码,外循环就是把内循环重复n遍
-
要记得重置变量,在哪层循环需要重复使用的变量,就定义在哪层循环上方
结尾
知识了解完了,可以去看看下一篇代码练习题哦,看是掌握不了的,得狠狠的敲