本章为流程控制,在C语言中流程控制为顺序、分支(选择)、循环
目录
顺序结构
就是字面意思,一个程序从上到下,按顺序执行各条语句
分支结构
if语句
if的条件为真则执行,为假就不执行,if默认只能控制一个语句
#include<stdio.h>
int main()
{
if(1) //条件为真输出
printf("教练我想打篮球!\n");
if(0) //条件为假
printf("我想唱歌\n"); //默认控制第一条输出语句,第二条输出不影响正常输出
printf("我想跳舞\n");
return 0;
}
if……else语句
if(条件)语句A;else 语句B;这个就是若条件为真就输出A,否则就输出B
if……else if……else语句
if(条件) 语句A;else if(条件)语句B;else 语句C;
条件为真就只输出语句A,其他就不用输出
#include<stdio.h>
int main()
{
if(1) //条件为真,但只输出我要吃烧烤,其他两个语句不输出
printf("我要吃烧烤!\n");
else if(1) //条件为真
printf("我要吃肯德基!\n");
else
printf("我要吃麦当劳!\n");
return 0;
}
/*若想要吃麦当劳的话就必需将两个条件改为假才能去
if语句可理解为一个条件对应走的一条道路,走上了这条道就选择不了其他的路了
*/
switch……case语句
从case入口执行命令,一般搭配break语句使用,没有break的话就接着往下执行下一个case语句
default是switch条件中没有与case相对应的入口的话就从default这个入口进入,default也可以省略不写
#include<stdio.h>
int main()
{
switch(0) //从0出口进入
{
case 1:printf("我要吃烧烤!\n"); //因为从0号口进入所以这里不输出
case 0:printf("我要吃KFC!\n"); //从这里输出,没有break则一直往下输出
case 2:printf("我要吃麦当劳!\n");
default:printf("我要喝茶颜悦色!");
}
/*运用break语句
switch(0)
{
case 1:printf("我要吃烧烤!\n");
case 0:printf("我要吃KFC!\n");break;
case 2:printf("我要吃麦当劳!\n");
default:printf("我要喝茶颜悦色!");
}
*/
return 0;
}
循环结构
C语言中的三大循环,while,do……while,for
while
while语句是先判断在执行语句
do……while
do-while是先执行语句再判断。就是不管条件对不对,先做完事情后再做判断
for
for循环一般是多个for循环嵌套使用
#include<stdio.h>
int main()
{
int i,j;
for(i=0;i<3;++i) //控制外层,整体输出三次
{
printf("111!\n");
for(j=1;j<2;++j) //控制内层,每次外层循环时222!输出1次
{
printf("222!\n");
}
printf("333!\n");
}
return 0;
}
/*输出结果*/
/*
111!
222!
333!
111!
222!
333!
111!
222!
333!
*/
for循环最经典的还得是冒泡排序,具体可看
六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序_冒泡排序快速排序希尔排序堆排序_双鱼211的博客-CSDN博客
在循环语句中也有可以停止循环的方法,如break,reuturn或者是跳过此循环进入下一个循环
break
可以终止循环
可以终止switch语句
不能直接用于if,除非if属于循环内部的一个子句
多层switch中终止最近的switch
continue
用于跳过本次循环余下的语句,转去判断是否需要执行下次的执行
只能控制直接包含它的循环
return
终止被调函数,向主函数返回表达式的值
如果表达式为空,则终止函数,不向主调函数返回任何值
continue语句在while,do……while和for循环中,也有区别的,可具体看
for、while、do while循环的流程图表示及相应continue、break的流程图表示_for循环流程图_AN_drew的博客-CSDN博客
主要在于他们循环体的区别,在考试时一定要注意!!