C语言流程控制语句简介

目录

一、什么是流程控制语句

二、顺序结构

三、分支结构

        1、if语句

        (1)第一种if语句  

        (2)第二种if语句

        (3)第三种if语句

        2.switch语句        

四、循环结构

        1、while语句

        2、for循语句

        3、do-while语句

        4、break语句和continue语句


一、什么是流程控制语句

        流程控制语句,就是通过一些语句,控制程序的执行流程。C语言中的流程控制语句共有三种:顺序结构,分支结构和循环结构。下面将对这三种结构进行详细介绍。

二、顺序结构

        顺序结构语句是C语言中默认的执行流程,按照代码的先后顺序,从上至下依次执行代码语句。如下程序就是一个简单的顺序结构

#include 

int main() {
	printf("大小姐驾到,通通闪开");
	printf("心怀不惧,方能翱翔于天际");
	printf("超出三界之外,不在五形之中");
	printf("人生是场穷游,偶尔也需要暴走");
	printf("努力做主任喜欢的事情");

	return 0;
}

三、分支结构

        1、if语句

         在实际开发中,我们经常需要在满足一定条件下执行某段代码或代码块,但是如果条件不满足,我们就不希望执行相应的代码。而if语句就是在程序当中进行判断的。下面我们将介绍if语句。

        (1)第一种if语句

                第一种if语句的格式如下:

        if(关系表达式){

                语句体;

        }                        

                代码的执行流程如下:

                        (1) 首先计算关系表达式的值

                        (2) 如果关系表达式的值为true就执行语句体

                        (3) 如果关系表达式的值为false就不执行语句体

                        (4) 继续执行后面的其它语句

                可以用流程图来表示代码的执行过程:

C语言流程控制语句简介_第1张图片

                例如如下代码:

#include 

int main() {
	int score;
	scanf("%d", &score);
	if (score >= 60) {
		printf("考试通过");
	}
}

                程序运行后,输入一个整数分数score,若score大于60,则输出“考试通过”。

C语言流程控制语句简介_第2张图片

C语言流程控制语句简介_第3张图片

                  
        (2)第二种if语句

                 第二种if语句格式如下:

        if(关系表达式){

                语句体1;

        }else {

                语句体2;

        }

                代码的执行流程如下:

                        (1) 首先计算关系表达的值

                        (2) 如果关系表达式的值为true就执行语句体1

                        (3) 如果关系表达式的值为false就不执行语句体2

                        (4) 继续执行后面的其它语句

                可以用流程图来表示代码的执行过程:

                        例如如下代码:

#include 

int main() {
	int score;
	scanf("%d", &score);
	if (score >= 60) {
		printf("考试通过\n");
	}
	else
	{
		printf("考试未通过\n");
	}
}

        程序运行后,输入一个整数分数score,若score大于60,则输出“考试通过”,否则输出考试未通过。

C语言流程控制语句简介_第4张图片

              (3)第三种if语句

                       第三种if语句格式如下:

                if(关系表达式1){

                        语句体1;

                }else if(关系表达式2){

                        语句体2;

                }

                ...

                else {

                        语句体n + 1;

                }

               代码的执行流程如下:

                        (1)首先计算关系表达式1的值

                        (2)如果执行结果为true就执行语句体1;如果为false就计算关系表达式2的值

                        (3)如果为true就执行语句体2;如果为false就计算关系表达式3的值

                        (4)......

                        (5)如果所有关系表达式结果都为false,就执行语句体n + 1。

                关键:从上往下依次判断,只要有一个判断为真,就执行对应的语句体,如果所有的判断都为假,就执行else语句体。

                例如如下代码:

#include 

int main() {
	int score;
	scanf("%d", &score);
	if (score < 60) {
		printf("考试不通过\n");
	}
	else if(score >= 60 && score < 70)
	{
		printf("考试通过\n");
	}
	else if (score >= 70 && score < 80) {
		printf("考试良好\n");
	}
	else if (score >= 80 && score < 90) {
		printf("考试较好\n");
	}
	else {
		printf("考试优秀\n");
	}
}

        程序运行后,输入一个整数分数score,通过判断score满足的条件在显示屏上输出不同的信息。

        2.switch语句        

            switch语句是一种特殊形式的if...else结构,用于判断条件有多个结果的情况,同时也使程序更易读。

        switch语句格式如下:

        switch(表达式) {

                case 值1:

                        语句体1;

                        break;

                case 值2:

                        语句体2;

                        break;

                 ...

                default:

                        语句体 n + 1;

                        break;

        }

        switch语句的执行流程如下:

                (1)首先计算表达式的值。

                (2)依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束。

                (3)如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

        注意:

                (1)case和后面的数字之间必须要有空格

                (2)每一个case语句中的代码执行完成后,需要加上break,才能跳出switch语句。

        例如下面的程序

#include 

int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 
 break;
 case 1:
 printf("余数是1\n"); 
 break;
 case 2:
 printf("余数是2\n"); 
 break;
 }
 return 0;
}

        该程序首先输入一个数,让这个数取模3,判断余数。

C语言流程控制语句简介_第5张图片

四、循环结构

        在实际开发中,有的时候要重复执行一段代码,如果按顺序执行的方式编写程序,那么编写程序的效率将会很低,因此C语言提供了三种循环语句:while、for和都 while

        1、while语句

        while语句的格式如下:

        初始化语句;

        while(条件判断语句){

                循环体语句;

                条件控制语句

        }

        while语句的执行流程如下:

                (1)执行初始化语句

                (2)执行条件判断语句,看其结果是true还是false

                                如果是false,循环结束

                                如果是true,执行循环体语句

                (3)执行条件控制语句

                (4)回到(2)继续执行条件判断语句

                while语句执行流程图如下:

                          

                while先进行条件判断,如果表达式的值为0,循环直接结束;若表达式的值不为0,则执            行循环语句,同时进行条件控制,语句执行完后再进行条件判断,判断是否满足条件,若满            足条件则继续执行循环语句,若不满足则退出循环。

                例如如下代码 :

#include 

int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

              改代码实现的功能是打印1~10之间的整数。运行结果如下:

C语言流程控制语句简介_第6张图片

        2、for循语句

        for 循环的语句格式如下:

        for(初始化语句;条件判断语句;条件控制语句){

                循环体语句;

        }

        for语句的执行流程和while语句类似,这里不再描述。

         例如上面打印1~10之间的整数的程序也可用for语句实现:

#include 

int main()
{
	for (int i = 1; i <= 10; i++) {
		printf("%d ", i);
	}
}

        运行结果:

C语言流程控制语句简介_第7张图片

        3、do-while语句

        do-while语句的格式如下:

        初始化语句;

        do{

                循环体语句;

                条件控制语句;

        }while(条件判断语句)

        do-while语句与while语句执行流程相似,只不过do-while语句的循环体语句和条件控制语句无论如何都会执行一次,执行流程图如下:

        例如上面打印1~10之间的整数的程序也可用do-while语句实现:

#include 

int main()
{
 int i = 1;
 do

 {
 printf("%d ", i);
 i = i + 1;
 }while(i<=10);
 
 return 0;
}

        运行结果如下:

C语言流程控制语句简介_第8张图片

4、break语句和continue语句

        在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break 和 continue 两个关键字,就是应⽤到循环中的。

(1)break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。

        例如如下代码:

#include 

int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 break;//当i等于5后,就执⾏break,循环就终⽌了 
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

        当打印到5的时候,跳出循环。运行结果如下:

                   C语言流程控制语句简介_第9张图片

(2)continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所 差异的。

    

#include 

int main()
{
 int i = 1;
 while(i<=10)
 {
     if(i == 5)
         continue; 
     printf("%d ", i);
     i = i+1;
 }
 return 0;
}

        当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅,因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环。程序的运行结果如下:

C语言流程控制语句简介_第10张图片

        while语句和for语句中break和continue区别:

                (1)在while和for语句中,break语句无区别,都可以跳出循环。

                (2)在while语句中,continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接 到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。在 for 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的条件控制语句。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤continue来实现。

你可能感兴趣的:(c语言)