前言:C语言的控制语句可以分为以下几类语句,分别为循环语句、条件语句、开关语句、返回语句;控制语句用于控制程序的执行流程,以实现程序的各种结构方式;同时结构的方式有三种,分别为选择结构、循序结构、循环结构,使用这三种结构进行相互的搭配形成复杂的逻辑结构。
一、循环语句
1.for语句
for主要作为条件的循环语句,有三个表达式进行循环判断,表达式1为初始化变量、表达式2为判断循环范围的终止条件、表达式3为作为下一个循环的准备处理;表达式2条件符合则执行循环语句,执行完后再执行表达式3形成闭环循环。
for(表达式1;表达式2;表达式3){
语句;
}
例如:
带括号的表达式变量增加
int i;
for(i=0;i<10;i++){
printf("%d\n", i);
printf("Hello world\n");
}
带括号的表达式变量减小
int i;
for(i=10;i>0;i--){
printf("%d\n", i);
printf("Hello world\n");
}
不带括号的表达式只能第一条语句
int i;
for(i=10;i>0;i--)
printf("%d\n", i);
无限制循环,没有条件判断表示一直执行
for(;;){
printf("Hello world\n");
}
for的嵌套循环控制
void BubbleSort( int data[], int n )
{
int i, j, k, t;
for( i = 1; i <= n-1; i++ )
{
for( j = 1; j <= n-i; j++ )
{
if( data[j+1] < data[j] )
{
t = data[j+1];
data[j+1] = data[j];
data[j] = t;
}
}
}
}
2.do语句
do需与while配合使用;do为先执行动作后判断while的条件是否要继续循环执行do的动作。
do{
语句;
}
while(变量的条件);
例如:
do-while循环控制
int i=1;
do{
if(1==i)
printf("Hello world\n");
i++;
}
while(i<10);
do-while循环与break联动,跳出当前do-while循环
int i=1;
do{
if(1==i)
printf("Hello world\n");
if(5==i)
break;
i++;
}
while(i<10);
do-while循环与continue联动,中断continue下面的语句回到起点继续循环进行动作
int i=1;
do{
i++;
if(1==i)
printf("Hello world\n");
if(5==i)
continue;
printf("%d\n", i);
}
while(i<10);
3.while语句
while语句创建了一个重复循环,重复执行直到测试表达式为假或0则跳出当前循环或者内部循环设置强制退出当前循环。
while (表达式){
语句;
}
例如:
while进行无限循环控制
int i=1;
i = scanf("%d",&num);
while (i==1) {
printf("Hello world\n");
}
while循环与break联动,跳出当前while循环
int i=1;
while (i==1){
if(1==i)
printf("Hello world\n", i);
if(5==i)
break;
i++;
}
while循环与continue联动,中断continue下面的语句回到起点继续循环进行动作
int i=1;
while (i==1){
i++;
if(1==i)
printf("Hello world\n");
if(5==i)
continue;
printf("%d\n", i);
}
while(i<10);
二、条件语句
1.if语句
if条件语句为真执行以下的代码块,条件为假则不执行。
if(表达式){
语句;
}
例如:
if单独使用,if为真则执行if下面的语句,否则不执行
if (i==1) {
printf("right!\n");
}
if与else的搭配,if为真则执行if下面的语句,否则执行else下面的语句
int i=1;
if (i==1) {
printf("right!\n");
}
else{
printf("false!\n");
}
if与else if、else的搭配,if为真则执行if下面的语句,否则执行下面的语句
int i=1;
if (i==1) {
printf("biurry!\n");
}
else if(i==2){
printf("right!\n");
}
else{
printf("false!\n");
}
2.goto语句
goto用于无条件地跳转到程序的另一个位置,谨慎使用,太多跳转会造成程序的复杂度增强但是适当的使用可以起到很巧妙效果。
名称地址:
语句;
goto 名称地址;
例如:
无条件跳转执行
int i = 0;
start:
printf("%d\n", i);
i++;
if(i<20){
goto start;
}
无条件跳转执行形成闭环循环
int i = 0;
start:
printf("%d\n", i);
goto start;
三、开关语句
1.switch语句
switch是用于多分支选择,根据表达式的值跳转到不同的分支执行相应的代码块;case是与switch配合使用,用于指定每个分支的值;default是与switch配合使用,用于指定当没有匹配的case分支时要执行的代码块;三者是相互搭配使用的。
Switch(表达式1){
case (表达式2):
语句;
break;
case (表达式3):
语句;
break;
.
.
.
default:
语句;
break;
}
例如:
int num = 0;
switch (num) {
case 1:
printf("You chose num 1.\n");
break;
case 2:
printf("You chose num 2.\n");
break;
case 3:
printf("You chose num 3.\n");
break;
default:
printf("Invalid num.\n");
break;
}
四、返回语句
1.return语句
return是用于函数中返回值的关键字,用于将某个值作为函数的返回值,并退出当前的函数。
例如:
带返回参数退出函数
int add(int a, int b) {
return a+ b;
}
不带返回参数退出函数
int num=0;
void add(int a, int b){
num=a+ b;
return;
}
不带返回参数退出函数,不执行return后面的语句
int num=0;
void add(int a, int b){
num=a+ b;
If(6==num)
return;
printf("Hello world\n");
}