内容正文:
第三章 程序设计的三大结构
--循环结构
1
C语言
知识树
My First Template
CONTENTS
目录
01
02
while循环的应用
for循环的应用
03
do-while循环的应用
04
循环中的特殊语句
05
循环的嵌套(for)
循环中的特殊语句
C语言程序设计
4
C语言
for
while
Do-while
循环都是满足一定条件的重复
C语言中的三种循环
循环中的特殊语句
My First Template
CONTENTS
内容
01
02
continue语句
03
goto语句
break语句
04
return语句
6
C语言
break语句
1、多分支结构switch语句中;
2、循环之中(三种循环均可)
应用场景(结束)
循环中的特殊语句
当break语句用于for、while、do-while循环语句中时,表示终止循环执行其后语句, 通常break关键字与if语句配合使用,当满足某些条件时结束循环。在多重循环中,break表示结束当前层的循环。
当break用于分支结构switch中时,表示结束switch语句,继续向后执行。switch语句中如果没有break语句,则将逐条语句执行下去。
My First Template
C语言
break语句
循环中的特殊语句
switch
表达式
语句组1
break;
语句组2
break;
语句组n
break;
语句组
break;
…...
语句 1
语句 2
语句n
default
case
语句2
……
break;
…...
假(0)
真(非0)
for
语句1
语句3
My First Template
C语言
循环中的特殊语句
结束 for 循环
for( ; ; )
{
printf("这将一直进行下去");
i = getchar();
if(i == 'X' || i == 'x')
break;
}
结束 while 循环
while(1)
{
if(x == 10)
break;
}
结束 do-while 循环
do
{
if (x == 10)
break;
}while (x< 15);
break语句(结束循环)
My First Template
C语言
循环中的特殊语句
break语句应用1
计算1+2+3+……+n的和大于100的且与其最接近的n值。
#include "stdio.h" //预处理
void main( )//主函数
{ //定义变量i表示值的变化,sum用来存储和
int i,sum=0;//sum要有初始值否则会出现差错
for(i=1;;i++)//外循环控制行数
{
sum+=i;//实现累加
if(sum>=100) break;//如果累加后和超过100则结束
}
printf("和不超过100最大n值是%d",i);
}
My First Template
C语言
循环中的特殊语句
break语句应用2
问题描述:
统计从键盘输入的若干个字符中有效字符的个数,以换行符作为输入结束。有效字符是指第一个空格符前面的字符,若输入字符中没有空格符,则有效字符为除了换行符之外的所有字符。
#include<stdio.h>
void main()
{
int count=0,ch;
printf("
请输入一行字符:");
while((ch=getchar())!='
')
{
if(ch==' ')
break;
count++;
}
printf("
共有 %d 个有效字符。
",count);
}
内存
ch
count
H
0
_
请输入一行字符:good bye
共有 4个 有效字符
1
循环执行 4 次
4
My First Template
C语言
continue语句
continue语句的作用是跳出本次循环直接进入下次循环。continue语句应用在循环体内,常与if条件语句一起配合使用。与break语句的区别是,continue语句只结束本次循环,而不是终止整个循环的执行。
应用场景
循环中的特殊语句
while(…)
{
……
……
continue;
……
……
}
while(…)
{
……
……
break;
……
……
}
跳出整个循环
继续下一次循环
My First Template
C语言
continue语句
continue语句的作用是跳出本次循环直接进入下次循环。continue语句应用在循环体内,常与if条件语句一起配合使用。与break语句的区别是,continue语句只结束本次循环,而不是终止整个循环的执行。
应用场景
循环中的特殊语句
语句2
……
continue;
…...
假(0)
真(非0)
for
语句1
语句3
My First Template
C语言
循环中的特殊语句
continue语句应用1
问题描述:
求整数1~100的累加值,但要求跳过所有个位为3的数。
#include<stdio.h>
void main()
{
int i,sum = 0;
for(i=1; i<=100;i++)
{
if( i % 10 == 3)
continue;
sum += i;
}
printf("sum = %d
",sum);
}
内存
i
sum
null
0
13
1
循环执行到 i = 13
78
输出:
sum = 4570
1
循环执行到 i = 101
101
4570
My First Template
C语言
goto语句
使用break语句可以结束当前的循环体,如果是多重循环的嵌套,想直接跳出最外层的循环,可以在设置标记的情况下,使用goto语句。goto语句也称为无条件转移语句。
其一般格式如下:goto 语句标号;
说 明1:语句标号满足用户标识符的规定, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
说 明2:C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。
说 明3:goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
说 明4:在C语言中进行程序设计时不建议使用goto语句,以免造成程序流程的混乱,使理解和调试程序都产生困难。因此,只要能够看懂别人对goto语句的使用就足够了。
应用场景
循环中的特殊语句
My First Template
C语言
循环中的特殊语句
goto语句应用
#include "stdio.h"//预处理
void main()//主函数
{
int a=20,b=25;
if(a<=b)//如果a小于等于b
{
goto aa;//跳转到标记aa
}
printf("goto 语句测试
");
aa:printf("goto 语句已经跳转
"); //aa为goto跳转的标记
}
My First Template
C语言
return语句
在C语言程序设计中,经常会用到返回到某一调用点的情况。如果函数的返回值类型不为void,则需要在程序结尾使用return返回。return语句主要应用于函数的返回。
应用场景
循环中的特殊语句
main( )
调用函数a
结束
a函数
b函数
调用函数b
return
return
#include"stdio.h"
int sum(int x,int y)
{
return x+y;
}
main()
{
int a=100,b=200,he;
he= sum(a,b);
printf("a与b的和为%d
",he);
}
My First Template
总结
1. break语句
2.continue语句
3. goto与return语句
循环的嵌套(for)
C语言程序设计
19
C语言
使用循环的嵌套
完成输出九九乘法表
本次任务
循环中的嵌套
My First Template
CONTENTS
内容
01
02
相关知识
03
任务实现
任务分析
21
C语言
循环中的嵌套
任务分析
9行
最多9列(从1到9)
算式列号*行号=值
列号<=行号
算式的个数和行号一样
输出9行可以使用循环
输出9列也可以用循环
同时输出9行9列用单重循环无法完成
分析
My First Template
C语言
循 环
满足一定条件的重复。
循环体
循环中的嵌套
My First Template
C语言
循环中的嵌套
for ( ; ; )
{…
for ( ; ; )
{…}
} while ( )
{…
while ( )
{…}
} do
{…
do{…}
while ( );
} while ( );
for ( ; ; )
{ …
while ( )
{…}
…
} while ( )
{ …
do {…}
while ( );
…
} do
{ …
for(; ;)
{…}
…
} while ( );
for ( ; ; )
{ …
do {…}
while ( );
…
} while ( )
{ …
for ( ; ; )
{…}
…
}
do
{ …
while ( )
{…}
…
} while ( );
循 环
循 环的嵌套
循环中套有完整的循环。
My First Template
C语言
循环中的嵌套
for(i=1,i <= 9,i++)
{
. . .
for(j=1;j<=i;j++)
{
. . .
. . .
}
. . .
}
外循环
内循环
只有在内循环完全结束后,外循环才会进行下一趟。
共有三种循环嵌套
三种循环可以互相嵌套
使用循环嵌套的难点在于构造内循环结束条件
注意
for循环的嵌套
My First Template
C语言
循环中的嵌套
任务实现
#include "stdio.h" //预处理
void main( )//主函数
{
int i,j;
for(i=1;i<=9;i++)//外循环控制行数
{ //内循环完成每行中表达式构建
for(j=1;j<=i;j++)
{
printf("%d*%d=%-4d",i,j,i*j);
}
printf("
"); //每一行输出完换行
}
}
外循环
内循环
外循环控制行数一共9行
内循环生成表达式个数
行内表达式个数和行相等
My First Template
总结
1. 任务分析
2. 知识讲解
3. 任务实现
�
�
�
�����
�����
i=1�
sum+=i�
sum>=100�
���
i++�
���
$$