码迷,mamicode.com
首页 > 其他好文 > 详细

流程控制

时间:2020-10-10 17:50:29      阅读:13      评论:0      收藏:0      [点我收藏+]

标签:4行   表达式   tab   多个   正整数   相同   三元   等于   else   

流程控制

*学习目标*

u *掌握选择**结构**语句*

u *掌握循环结构语句*

? 前面的章节一直在介绍C语言的基本语法知识,然而仅仅依靠这些语法知识还不能编写出完整的程序。在程序中,通常需要加入业务逻辑,并对程序的流程进行控制。本章将重点讲解C语言中最基本的三种流程控制语句。

一. 程序的运行流程图

? 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和流程线组成的。流程图描述问题的处理步骤,形象直观,便于阅读。画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如图3-1所示。

技术图片

? 图3-1 流程图符号

图3-1所示的流程图符号中,列举了四种图框和两种流程线,具体说明如下:

  • 起止框用于表示流程的开始或结束;

  • 输入/输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容;

  • 判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后续的操作;

  • 处理框用矩形表示,它代表程序中的处理功能,如算术运算和赋值等;

  • 流程线用实心单向箭头或直线表示,可以连接不同位置的图框,流程线的标准流向是从左到右和从上到下,可用直线表示,非标准流向的流程线应使用箭头指示方向;

  • 连接点用圆形表示,用于流程图的延续。

    ? 通过上面的讲解,初学者对流程图符号有了简单的认识,接下来先来看一个简单的流程图,如图3-2所示。

技术图片
图3-2 判断奇偶数

? 图3-2表示的是一个判断奇偶数的流程图,下面针对该流程图中的执行顺序进行说明,具体如下:

? 第1步:程序开始;
? 第2步:进入处理框,将变量number赋值为1;
? 第3步:进入判断框,判断number是否为偶数,如果是偶数,则进入下面的输出框,输出number是偶数;否则进入左面的输出框,输出number是奇数;
? 第4步:输出完成后,进入结束状态,程序终止。

二. 顺序结构语句

? 前面章节讲解的程序都有一个共同的特点,即程序中的所有语句都是从上到下逐条执行,这样的程序结构叫做顺序结构。顺序结构是程序开发中最常见的一种结构,它可以包含多种语句,如变量的定义语句、输入输出语句、赋值语句等。下面来看一个顺序结构的简单例子,通过程序实现按顺序输出“我爱C语言”,如例3-1所示。

? 例3-1

1 #include <stdio.h>
2 int main()
3 {
4 	printf("我\n");
5 	printf("爱\n");
6 	printf("C\n");
7 	printf("语\n");
8 	printf("言\n");
9 	return 0;
10 }

运行结果如图3-3所示。

技术图片

? 图3-3 运行结果

? 在例3-1的程序中,使用了5个printf()语句,从上往下依次输出“我、爱、C、语、言”。从运行结果可以看出,程序是按照语句的先后顺序执行的。因此,可以说明该程序是一个顺序结构的程序。

三. 选择结构语句

在实际生活中经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。同样,在C语言中也经常需要对一些条件做出判断,从而决定执行哪一段代码,这时就需要使用选择语句。选择结构语句分为if条件语句和switch条件语句,接下来本小节将对它们进行详细地讲解。

1. if条件语句

if条件语句分为三种语法格式,每一种格式都有其自身的特点,下面分别进行讲解。

(1)、if语句

if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。

如果小明考试得了100分
妈妈星期天带小明去游乐场

在上面的伪代码中,“如果”相当于C语言中的关键字if,“小明考试得了100分”是判断条件,需要用()括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在{}中。修改后的伪代码如下:

if (小明考试得了100分)
{
	   妈妈星期天带小明去游乐场
}

上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下:

if (条件语句)
{ 
	代码块
}

上述语法格式中,判断条件是一个布尔值,当判断条件为true时,{}中的执行语句才会被执行。if语句的执行流程如图3-4所示。

技术图片
图3-4 if语句流程图

接下来通过一个案例来学习if语句的具体用法,如例3-2所示。

? 例3-2

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 		//声明变量x 
 5 		int x = 5;
 6 		//如果x的值小于10则执行if大括号中的代码
 7 		if (x < 10)
 8 		{
 9 			x++;
 10 	}
 11 	printf("x=%d\n" , x);
 12 	return 0;
 13 }

运行结果如图3-5所示。

技术图片
图3-5 运行结果

例3-2中,定义了一个变量x,其初始值为5。在if语句的判断条件中判断x的值是否小于10,很明显条件成立,因此{}中的语句会被执行,变量x的值将进行自增。从图3-5的运行结果可以看出,x的值已由原来的5变成了6。

(2)、if…else语句

if…else语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。if…else语句的具体语法格式如下:

if (判断条件)
{
	  执行语句1
	……
}
else
{
	  执行语句2
	……
}

上述语法格式中,判断条件是一个布尔值。当判断条件为true时,if后面{}中的执行语句1会被执行。当判断条件为false时,else后面{}中的执行语句2会被执行。if…else语句的执行流程如图3-6所示。

技术图片
? 图3-6 if…else语句流程图

接下来通过一个实现奇偶数判断的案例来演示if..else语句的具体用法,如例3-3所示。

? 例3-3

1 	#include<stdio.h>
2 	int main()
3 	{
4 		int num = 19;
5 		if (num % 2 == 0)
6 	{
7 		//判断条件成立,num被2整除
8 		printf("num是一个偶数\n");
9 	}
10 	else
11 	{
12 		printf("num是一个奇数\n");
13 	}
14 	return 0;
15 	}

运行结果如图3-7所示。

技术图片
? 图3-7 运行结果

例3-3中,变量num的值为19,模以2的结果为1,不等于0,判断条件不成立。因此会执行else后面{}中的语句,打印“num是一个奇数”。

(3)、if…else if…else语句

if…else if…else语句用于对多个条件进行判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分等级为优,如果分数小于80分大于等于70分等级为良,如果分数小于70分大于等于60分等级为中,否则,等级为差。if…else if…else语句的具体语法格式如下:

if (判断条件1) 
{
		执行语句1
}
else if (判断条件2) 
{
		执行语句2
}
……
else if (判断条件n)
{
		执行语句n
} 
else 
{
		执行语句n+1
}

上述语法格式中,判断条件是一个布尔值。当判断条件1为true时,if后面{}中的执行语句1会执行。当判断条件1为false时,会继续执行判断条件2,如果为true则执行语句2,以此类推,如果所有的判断条件都为false,则意味着所有条件均未满足,else后面{}中的执行语句n+1会被执行。if…else if…else语句的执行流程如图3-8所示。

技术图片

? 图3-8 if…else if…else语句的流程图

接下来通过一个对学生考试成绩进行等级划分的案例来演示if…else if…else语句的用法,如例3-4所示。

? 例3-4

1 #include<stdio.h>
2 int main()
3 {
4 int grade = 75; //定义学生成绩
5 if (grade >= 80)
6 {
7 	//满足条件 grade >=80
8 	printf("该成绩的等级为优\n");
9 }
10 else if (grade >= 70)
11 {
12 	//不满足条件 grade >= 80 ,但满足条件 grade >= 70 
13 	printf("该成绩的等级为良\n");
14 }
15 else if (grade >= 60)
16 {
17 	//不满足条件 grade >= 70 ,但满足条件 grade >= 60 
18 	printf("该成绩的等级为中\n");
19 }
20 else
21 {
22 	//不满足条件 grade >= 60 
23 	printf("该成绩的等级为差\n");
24 }
25 return 0;
26 }

运行结果如图3-9所示。

技术图片
? 图3-9 运行结果

例3-4中,定义了学生成绩grade为75。它不满足第一个判断条件grade>=80,会执行第二个判断条件grade>=70,条件成立,因此会打印“该成绩的等级为良”。

多学一招:三元运算符

在C语言中有一种特殊的运算叫做三元运算,它和if…else语句类似,具体语法格式如下:

判断条件 ? 表达式1 : 表达式2

三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。

例如求两个数x、y中的较大者,如果用if…else语句来实现,具体代码如下:

int x = 0;
int y = 1;
int max;
if (x > y) 
{
		max = x;
} else 
{
		max = y;
}

上面的代码运行之后,变量max的值为1。如果if…else语句用三元运算来替换,具体代码如下:

int x = 0;
int y = 1;
int max;
max = x > y ? x : y;

2. switch条件语句

switch 条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。例如,在程序中使用数字1~7来表示星期一到星期天,如果想根据某个输入的数字来输出对应中文格式的星期值,可以通过下面的一段伪代码来描述:

用于表示星期的数字
	如果等于1,则输出星期一
	如果等于2,则输出星期二
	如果等于3,则输出星期三
	如果等于4,则输出星期四
	如果等于5,则输出星期五
	如果等于6,则输出星期六
	如果等于7,则输出星期天
	如果不是1~7,则输出此数字为非法数字

对于上面一段伪代码的描述,大家可能会立刻想到用刚学过的if…else if…else语句来实现,但是由于判断条件比较多,实现起来代码过长,不便于阅读。这时就可以使用C语言中的switch语句来实现这种需求。在switch语句中switch关键字后面有一个表达式,case关键字后面有目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。接下来通过一段伪代码来描述switch语句的基本语法格式,具体如下:

switch (表达式)
{
	case 目标值1:
		执行语句1
		break;
	case 目标值2:
		执行语句2
		break;
	……
	case 目标值n:
		执行语句n
		break;
	default:
		执行语句n+1
		break;
}

在上面的语法格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,就会执行相应case后的语句,否则执行default后的语句。关于switch语句中的break关键字将在后面的小节中做具体介绍,此处,初学者只需要知道break的作用是跳出switch语句即可。

接下来通过一个案例来实现根据数字输出中文格式的星期的功能,如例3-5所示。

? 例3-5

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 		int week = 5;
 5 		switch (week)
 6 		{
 7 		case 1:
 8 			printf("星期一");
 9 			break;
 10 	case 2:
 11 		printf("星期二");
 12 		break;
 13 	case 3:
 14 		printf("星期三");
 15 		break;
 16 	case 4:
 17 		printf("星期四");
 18 		break;
 19 	case 5:
 20 		printf("星期五");
 21 		break;
 22 	case 6:
 23 		printf("星期六");
 24 		break;
 25		case 7:
 26 		printf("星期天");
 27 		break;
 28 	default:
 29 		printf("输入的数字不正确...");
 30 		break;
 31 	}
 32 	return 0;
 33 }

运行结果如图3-10所示。

技术图片

? 图3-10 运行结果

例3-5中,由于变量week的值为5,整个switch语句判断的结果满足第19行的条件,因此打印“星期五”。程序中的default语句用于处理和前面的case都不匹配的情况,将第5行代码替换为int week = 8,再次运行程序,输出结果如图3-11所示。

技术图片
图3-11 运行结果

在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。例如,使用数字1~7来表示星期一到星期天,当输入的数字为1、2、3、4、5时视为工作日,否则视为休息日,这时如果需要判断一周中的某一天是否为工作日,就可以采用switch语句的简写方式,具体如例3-6所示。

? 例3-6

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 		int week = 2;
 5 		switch (week)
 6 		{
 7 		case 1:
 8 		case 2:
 9 		case 3:
 10 	case 4:
 11 	case 5:
 12 		//当 week 满足值 1、2、3、4、5 中任意一个时,处理方式相同
 13 		printf("今天是工作日\n");
 14 		break;
 15 	case 6:
 16 	case 7:
 17 		//当 week 满足值 6、7 中任意一个时,处理方式相同
 18 		printf("今天是休息日\n");
 19 		break;
 20	 	}
 21 	return 0;
 22 }

运行结果如图3-12所示。

技术图片
? 图3-12 运行结果

例3-6中,当变量week的值为1、2、3、4、5中任意一个值时,处理方式相同,都会打印“今天是工作日”。同理,当变量week值为6、7中任意一个值时,打印“今天是休息日”。

3.4 *循环**结构语句*

在实际生活中经常会将同一件事情重复做很多次,比如在走路时,会重复使用左右脚,打乒乓球时,会重复挥拍的动作等。同样在C语言中,也经常需要重复执行同一代码块,这时就需要使用循环语句。循环语句分为while循环语句、do…while循环语句和for循环语句三种。接下来,本小节将针对这三种循环语句分别进行详细地讲解。

四. while循环语句

while循环语句和3.3小节讲到的条件判断语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会一直执行,直到条件不成立,while循环结束。while循环语句的具体语法格式如下:

while (循环条件)
{
	执行语句
………
}

在上面的语法格式中,{}中的执行语句被称作循环体,循环体是否执行取决于循环条件。当循环条件为true时,循环体就会被执行。循环体执行完毕时会继续判断循环条件,如条件仍为true则会继续执行,直到循环条件为false时,整个循环过程才会结束。

while循环的执行流程如图3-13所示。

?技术图片
图3-13 while循环的流程图

接下来通过while语句来实现1~4之间自然数的打印,如例3-7所示。

? 例3-7

1 	#include <stdio.h>
2 	int main()
3 	{
4 		int x = 1;			    //定义变量x,初始值为1
5 		while (x <= 4)        // 循环条件
6 		{
7 			printf("x = %d\n", x);// 条件成立,打印x的值
8 			x++;           // x进行自增
9 		}
10 		return 0;
11 	}

运行结果如图3-14所示。

技术图片
图3-14 while循环

例3-7中,x的初始值为1,在满足循环条件x <= 4的情况下,循环体会重复执行,打印x的值并让x进行自增。因此打印结果中x的值分别为1、2、3、4。值得注意的是,例3-7中的第8行代码用于在每次循环时改变变量x的值,直到循环条件不成立,如果没有这行代码,整个循环会进入无限循环的状态,永远不会结束。

3.4.2 *d**o**-**while循环语句*

do…while循环语句和while循环语句功能类似,二者的不同之处在于,while语句需要先判断循环条件,然后根据判断结果来决定是否执行大括号中的代码,而do…while循环语句先要执行一次大括号内的代码再判断循环条件,其具体语法格式如下:

do 
{
执行语句
………
} while(循环条件);

在上面的语法格式中,关键字do后面{}中的执行语句是循环体。do…while循环语句将循环条件放在了循环体的后面。这也就意味着,循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行。

do…while循环的执行流程如图3-15所示。

技术图片
? 图3-15 do…while循环的执行流程

接下来使用do…while循环语句将例3-7进行改写,如例3-8所示。

? 例3-8

1 	#include <stdio.h>
2 	int main()
3 	{
4 		int x = 1;			    //定义变量x,初始值为1
5 		do      
6 		{
7 			printf("x = %d\n", x);// 条件成立,打印x的值
8 			x++;           // x进行自增
9 		} while (x <= 4);     // 循环条件
10 		return 0;
11 	}

运行结果如图3-16所示。

技术图片
? 图3-16 do while实例

例3-8和例3-7的运行结果一致,这说明do …while循环和while循环能实现同样的功能。然而在程序运行过程中,这两种语句还是有差别的。如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do…while循环的循环体还是会执行一次。若将例中的循环条件x<=4改为x < 1,例3-8会打印x=1,而例3-7什么也不会打印。

3.4.3 *for循环语句*

在前面的小节中分别讲解了while循环和do…while循环。在程序开发中,还经常会使用另一种循环语句,即for循环,它通常用于循环次数已知的情况,其具体语法格式如下:

for(初始化表达式; 循环条件; 操作表达式)
{
		执行语句
		………
}

在上面的语法格式中,for关键字后面()中包括了初始化表达式、循环条件和操作表达式三部分内容,它们之间用“;”分隔,{}中的执行语句为循环体。

接下来分别用“①”表示初始化表达式、“②”表示循环条件、“③”表示操作表达式、“④”表示循环体,通过序号来具体分析for循环的执行流程。具体如下:

for(① ; ② ; ③)
{
		④
}
第一步,执行①
第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步
第三步,执行④
第四步,执行③,然后继续执行第二步
第五步,退出循环

接下来通过一个案例对自然数1~4进行求和,如例3-9所示。

? 例3-9

1 	#include<stdio.h>
2 	int main()
3 	{
4 		int sum = 0;           //定义变量sum,用于记住累加的和
5 		for (int i = 1; i <= 4; i++)  //i的值会在1~4之间变化
6 		{
7 			sum += i;           //实现sum与i的累加
8 		}
9 		printf("sum = %d \n", sum);  //打印累加的和
10 		return 0;
11 	}

运行结果如图3-17所示。

技术图片
? 图3-17 运行结果

例3-9中,变量i的初始值为1,在判断条件i<=4为true的情况下,会执行循环体sum+=i,执行完毕后,会执行操作表达式i++,i的值变为2,然后继续进行条件判断,开始下一次循环,直到i=5时,条件i<=4为false,结束循环,执行for循环后面的代码,打印“sum=10”。

为了让初学者能熟悉整个for循环的执行过程,现将例3-9运行期间每次循环中变量sum和i的值通过表3-1罗列出来。

? 表3-1 sum和i循环中的值

*循环次数* *sum* *i*
第一次 1 1
第二次 3 2
第三次 6 3
第四次 10 4

3.4.4 *循环嵌套*

有时为了解决一个较为复杂的问题,需要在一个循环中再定义一个循环,这样的方式被称作循环嵌套。在C语言中,while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,这当中最常见的就是在for循环中嵌套for循环,具体语法格式如下:

for(初始化表达式; 循环条件; 操作表达式) 
{
		………
		for(初始化表达式; 循环条件; 操作表达式) 
{
			执行语句;
			………
		}
		………
}

接下来通过for语句的循环嵌套来实现使用“*”打印直角三角形,如例3-10所示。

? 例3-10

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 		int i, j;             //定义两个循环变量
 5 		for (i = 1; i <= 9; i++)    //外层循环
 6 		{
 7 			for (j = 1; j <= i; j++) //内层循环
 8 			{
 9 				printf("*");	   //打印*
 10 		}
 11 		printf("\n");			 //换行
 12 	}
 13 	return 0;
 14 }

运行结果如图3-18所示。

技术图片
? 图3-18 运行结果

在例3-10中定义了两层for循环,分别为外层循环和内层循环,外层循环用于控制打印的行数,内层循环用于打印“”,每一行的“”个数逐行增加,最后输出一个直角三角形。由于嵌套循环程序比较复杂,下面分步骤进行详细地讲解,具体如下:

第一步,在第4行代码中定义了两个循环变量i和j,其中i为外层循环变量,j为内层循环变量。

第二步,在第5行代码中将i初始化为1,条件i <= 9为true,程序将首次进入外层循环的循环体。

第三步,在第7行代码中将j初始化为1,由于此时i的值为1,条件j <= i为true,程序将首次进入内层循环的循环体,打印一个“*”。

第四步,执行第7行代码中内层循环的操作表达式j++,将j的值自增为2。

第五步,执行第7行代码中的判断条件j<=i,判断结果为false,内层循环结束。执行后面的代码,打印换行符。

第六步,执行第5行代码中外层循环的操作表达式i++,将i的值自增为2。

第七步,执行第5行代码中的判断条件i<=9,判断结果为true,程序将进入外层循环的循环体,继续执行内层循环。

第八步,由于i的值为2,内层循环会执行两次,即在第2行打印两个“*”。在内层循环结束时会打印换行符。

第九步,以此类推,在第3行会打印3个“*”,逐行递增,直到i的值为10时,外层循环的判断条件i <= 9结果为false,外层循环结束,整个程序也就结束了。

3.4.5 *跳转语句(break、goto、continue)*

跳转语句用于实现循环执行过程中程序流程的跳转,在C语言中,跳转语句有break语句、goto语句和continue语句。接下来分别进行详细地讲解。

*1、break语句*

在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码。接下来通过一个具体的案例来演示break语句如何跳出当前循环,如例3-11所示。

? 例3-11

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 		int x = 1;    //定义变量x,初始值为1
 5 		while (x <= 4) //循环条件
 6 		{
 7 			printf("x = %d\n", x); //条件成立,打印x的值
 8 			if (x == 3)
 9 			{
 10 			break;
 11 		}
 12 		x++;      //x进行自增
 13 	}
 14 	return 0;
 15 }

运行结果如图3-19所示。

技术图片
? 图3-19 运行结果

例3-11中,通过while循环打印x的值,当x的值为3时使用break语句跳出循环。因此打印结果中并没有出现“x=4”。

*2、goto语句*

当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想要跳出外层循环则需要对外层循环添加标记,然后使用goto语句。接下来通过一个案例来演示如何使用goto语句,如例3-12所示。

? 例3-12

 1 	#include<stdio.h>
 2 	int main()
 3 	{
 4 
 5 		int i, j;             //定义两个循环变量
 6 		for (i = 1; i <= 9; i++)    //外层循环
 7 		{
 8 			for (j = 1; j <= i; j++) //内层循环
 9 			{
 10 			if (i > 4)       //判断i的值是否大于4
 11 			{
 12 				goto end;     //跳至标识为end的语句
 13 			}
 14 			printf("*");      //输出*
 15 		}
 16 		printf("\n");       //换行
 17 	}
 18   	end:  return 0;
 19 }

运行结果如图3-20所示。

技术图片
? 图3-20 运行结果

例3-12中,在return语句前面增加了标记“end”。当i>4时,使用“goto end;”语句跳出外层循环。因此程序只打印了4行“*”。

*3、continue语句*

在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句。接下来通过一个1~100之内的奇数求和的案例来演示continue语句的使用,如例3-13所示。

? 例3-13

1 	#include<stdio.h>
2 	int main()
3 	{
4 		int sum = 0;      //定义变量sum,用于记住和
5 		for (int i = 1; i <= 100; i++)
6 		{
7 			if (i % 2 == 0)  //如果i是一个偶数,执行if语句中的代码
8 			{
9 				continue;    //结束本次循环
10 			}
11 			sum += i;      //实现sum和i的累加
12 		}
13 		printf("sum = %d\n", sum);
14 		return 0;
15 	}

运行结果如图3-21所示。

![img](file:///C:\Users\lenovo\AppData\Local\Temp\ksohtml5092\wps21.jpg)

? 图3-21 运行结果

例3-13使用for循环让变量i的值在1100之间循环,在循环过程中,当i的值为偶数时,将执行continue语句结束本次循环,进入下一次循环。当i的值为奇数时,sum和i进行累加,最终得到1100之间所有奇数的和,打印“sum = 2500”。

3.5 *本章小结*

本章首先介绍了程序的运行流程图,然后讲解了C语言中最基本的三种流程控制语句,包括顺序结构语句、选择结构语句和循环语句。

通过本章的学习,初学者应该能够熟练的运用if判断语句、switch判断语句、while循环语句、do-while循环语句以及for循环语句。掌握本章的内容就能够编写逻辑比较复杂的C语言程序并且有助于后面章节的学习。sum);
14 return 0;
15 }


运行结果如图3-21所示。

![](https://img2020.cnblogs.com/blog/2160652/202010/2160652-20201007135450983-1598615741.png)
?																				图3-21 运行结果

例3-13使用for循环让变量i的值在1~100之间循环,在循环过程中,当i的值为偶数时,将执行continue语句结束本次循环,进入下一次循环。当i的值为奇数时,sum和i进行累加,最终得到1~100之间所有奇数的和,打印“sum = 2500”。 

**3.5** ***\*本章小结\****

本章首先介绍了程序的运行流程图,然后讲解了C语言中最基本的三种流程控制语句,包括顺序结构语句、选择结构语句和循环语句。

通过本章的学习,初学者应该能够熟练的运用if判断语句、switch判断语句、while循环语句、do-while循环语句以及for循环语句。掌握本章的内容就能够编写逻辑比较复杂的C语言程序并且有助于后面章节的学习。

 ![](https://img2020.cnblogs.com/blog/2160652/202010/2160652-20201007134724638-303814571.png)

流程控制

标签:4行   表达式   tab   多个   正整数   相同   三元   等于   else   

原文地址:https://www.cnblogs.com/1022szy/p/13777103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!