C语言程序设计谭浩强版 八



6.1  循环控制概述


循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某

程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为

循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。

1) 、用goto语句和if语句构成循环;

2) 、用while语句;

3) 、用do-while语句;

4) 、用for语句;


6.2  goto语句以及用goto语句构成循环


goto语句是一种无条件转移语句,其一般形式为:goto 语句标号;

语句标号用标识符表示,它的定名规则与变量名相同,即由字母,数字和下划线组成,

其第一个字符必须是字母或者下划线,不能用整数来做标号。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时, 用

goto语句则比较合理。

例6.1  用goto语句和if语句构成循环,


#include<stdio.h>
int main(void)
{
    int i,sum = 0;
    i = 1;
    loop:
    if(i <= 100)
    {
	sum = sum + i;
	i ++;
	goto loop;
    }
    printf("%d\n",sum);
}


6.3  while语句


while语句的一般形式为:while(表达式)语句

其中表达式是循环条件,语句为循环体。

while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。


例6.2  用while语句求


#include<stdio.h>
int main(void)
{
    int i,sum = 0;
    i = 1;
    while(i <= 100)
    {
	sum = sum + i;
	i++;
    }
    printf("%d\n",sum);
}


使用while语句应注意以下几点:

1)、while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的

         值为真(非0)即可继续循环。

2)、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。


例6.3  统计从键盘输入一行字符的个数。


#include<stdio.h>
int main(void)
{
    int n = 0;
    printf("input a string:\n");
    while(getchar() != '\n')
    {
	n++;
    }
    printf("%d\n",n);
}


使用while语句应注意以下几点:

1)、while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的

         值为真(非0)即可继续循环。

2)、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。




6.4  do-while语句


do-while语句的一般形式为:

do

   语句

while(表达式);

与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,

如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执

行一次循环语句。

例6.5  用do-while语句求


#include<stdio.h>
int main(void)
{
    int i,sum = 0;
    i = 1;
    do
    {
	sum = sum + i;
	i ++;
    }
    while(i <= 100);
    printf("%d\n",sum);
}



6.5  for语句


在C语言中,for语句使用最为灵活,它完全可以取代 while 语句。

它的一般形式为:for(表达式1;表达式2;表达式3) 语句

for语句最简单的应用形式也是最容易理解的形式如下:

for(循环变量赋初值;循环条件;循环变量增量) 语句

例如: for(i=1; i<=100; i++)

         {

             sum=sum+i;

          }


6.6  循环的嵌套


例6.7  循环的嵌套


#include<stdio.h>
int main(void)
{
	int i,j,k;
	for(i = 0;i < 2;i++)
	  for(j = 0;j < 2;j++)
	    for(k = 0;k < 2;k++)
	printf("%d %d %d\n",i,j,k);
}


6.7  几种循环的比较


1) 、四种循环都可以用来处理同一个问题,一般可以互相代替。

        但一般不提倡用goto型循环。

2)、 while和do-while循环,循环体中应包括使循环趋于结束的语句。

        for语句功能最强。

3) 、用while和do-while循环时,循环变量初始化的操作应在while和

       do-while语句之前完成,而for语句可以在表达式1中实现循环变

       量的初始化。


6.8 break和continue语句



6.8.1  break语句


break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句,

实际上,break语句还可以用来从循环体内跳出循环体。


例6.8

#include<stdio.h>
int main(void)
{
	int i = 0;
	char c;
	while(1)
	{
		c = '\0';
		while(c!=13 && c!=27)
		{
			c = getchar();
			printf("%c\n",c);
		}
		if(c == 27)
			break;
		i++;
		printf("The No. is %d\n",i);
	}
	printf("The end");
}


6.8.2  continue 语句


continue其作用为结束本次循环,即跳出循环体中下面尚未执行的语句,接着

进行下一次是否执行循环的判定。

continue语句和break语句的区别是:

continue语句只结束本次循环,而不是终止整个循环的执行

break语句是结束整个循环过程,不再判断执行循环的条件是否成立。

例6.9


#include<stdio.h>
int main(void)
{
	char c = '\0';
	while(c!=13)
	{
		c = getchar();
		if(c == 0x1B)
			continue;
		printf("%c\n",c);
	}
}





1 C语言概述 2 1.1 C语言的发展过程 2 1.2 当代最优秀的程序设计语言 2 1.3 C语言本 2 1.4 C语言的特点 3 1.5 面向对象的程序设计语言 3 1.6 C和C++ 3 1.7 简单的C程序介绍 4 1.8 输入和输出函数 5 1.9 C源程序的结构特点 6 1.10 书写程序时应遵循的规则 6 1.11 C语言的字符集 6 1.12 C语言词汇 7 1.13 Turbo C 2.0集成开发环境的使用 8 1.13.1 Turbo C 2.0简介和启动 8 1.13.2 Turbo C 2.0集成开发环境 8 1.13.3 File菜单 9 1.13.4 Edit菜单 10 1.13.5 Run菜单 11 1.13.6 Compile菜单 12 1.13.7 Project菜单 13 1.13.8 Options菜单 14 1.13.9 Debug菜单 18 1.13.10 Break/watch菜单 19 1.13.11 Turbo C 2.0的配置文件 20 2 程序的灵魂—算法 1 2.1 算法的概念 1 2.2 简单算法举例 1 2.3 算法的特性 4 2.4 怎样表示一个算法 4 2.4.1 用自然语言表示算法 4 2.4.2 用流程图表示算法 4 2.4.3 三种基本结构和改进的流程图 8 2.4.4 用N-S流程图表示算法 9 2.4.5 用伪代码表示算法 10 2.4.6 用计算机语言表示算法 11 2.5 结构化程序设计方法 11 3 数据类型、运算符与表达式 1 3.1 C语言的数据类型 1 3.2 常量与变量 3 3.2.1 常量和符号常量 3 3.2.2 变量 3 3.3 整型数据 4 3.3.1 整型常量的表示方法 4 3.3.2 整型变量 5 3.4 实型数据 7 3.4.1 实型常量的表示方法 7 3.4.2 实型变量 8 3.4.3 实型常数的类型 9 3.5 字符型数据 9 3.5.1 字符常量 9 3.5.2 转义字符 9 3.5.3 字符变量 10 3.5.4 字符数据在内存中的存储形式及使用方法 10 3.5.5 字符串常量 11 3.5.6 符号常量 12 3.6 变量赋初值 12 3.7 各类数值型数据之间的混合运算 13 3.8 算术运算符和算术表达式 14 3.8.1 C运算符简介 14 3.8.2 算术运算符和算术表达式 15 3.9 赋值运算符和赋值表达式 17 3.10 逗号运算符和逗号表达式 18 3.11 小结 19 3.11.1 C的数据类型 19 3.11.2 基本类型的分类及特点 19 3.11.3 常量后缀 19 3.11.4 常量类型 19 3.11.5 数据类型转换 19 3.11.6 运算符优先级和结合性 20 3.11.7 表达式 20 4 最简单的C程序设计—顺序程序设计 1 4.1 C语句概述 1 4.2 赋值语句 3 4.3 数据输入输出的概念及在C语言中的实现 4 4.4 字符数据的输入输出 4 4.4.1 putchar 函数(字符输出函数) 4 4.4.2 getchar函数(键盘输入函数) 5 4.5 格式输入与输出 5 4.5.1 printf函数(格式输出函数) 5 4.5.2 scanf函数(格式输入函数) 8 4.6 顺序结构程序设计举例 12 5 分支结构程序 1 5.1 关系运算符和表达式 1 5.1.1 关系运算符及其优先次序 1 5.1.2 关系表达式 1 5.2 逻辑运算符和表达式 2 5.2.1 逻辑运算符极其优先次序 2 5.2.2 逻辑运算的值 3 5.2.3 逻辑表达式 3 5.3 if语句 4 5.3.1 if语句的三种形式 4 5.3.2 if语句的嵌套 7 5.3.3 条件运算符和条件表达式 9 5.4 switch语句 10 5.5 程序举例 11 6 循环控制 1 6.1 概述 1 6.2 goto语句以及用goto语句构成循环 1 6.3 while语句 2 6.4 do-while语句 4 6.5 for语句 6 6.6 循环的嵌套 9 6.7 几种循环的比较 9 6.8 break和continue语句 9 6.8.1 break语句 9 6.8.2 continue 语句 10 6.9 程序举例 11 7 数组 1 7.1 一维数组的定义和引用 1 7.1.1 一维数组的定义方式 1 7.1.2 一维数组元素的引用 2 7.1.3 一维数组的初始化 4 7.1.4 一维数组程序举例 4 7.2 二维数组的定义和引用 6 7.2.1 二维数组的定义 6 7.2.2 二维数组元素的引用 6 7.2.3 二维数组的初始化 7 7.2.4 二维数组程序举例 9 7.3 字符数组 9 7.3.1 字符数组的定义 9 7.3.2 字符数组的初始化 9 7.3.3 字符数组的引用 10 7.3.4 字符串和字符串结束标志 10 7.3.5 字符数组的输入输出 10 7.3.6 字符串处理函数 12 7.4 程序举例 14 7.5 本章小结 17 8 函 数 1 8.1 概述 1 8.2 函数定义的一般形式 3 8.3 函数的参数和函数的值 4 8.3.1 形式参数和实际参数 4 8.3.2 函数的返回值 5 8.4 函数的调用 6 8.4.1 函数调用的一般形式 6 8.4.2 函数调用的方式 6 8.4.3 被调用函数的声明和函数原型 7 8.5 函数的嵌套调用 8 8.6 函数的递归调用 10 8.7 数组作为函数参数 12 8.8 局部变量和全局变量 17 8.8.1 局部变量 17 8.8.2 全局变量 19 8.9 变量的存储类别 20 8.9.1 动态存储方式与静态动态存储方式 20 8.9.2 auto变量 21 8.9.3 用static声明局部变量 21 8.9.4 register变量 22 8.9.5 用extern声明外部变量 23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值