程序设计方法基础-循环结构

循环三要素: 初值   循环判断条件   步长(循环增量)

循环结构在有些书籍上也称为重复结构,  即反复执行某一部分的操作。

循环三要素: 初值   循环判断条件   步长(循环增量)

如何控制循环的结束呢?

第一种方式就是  条件控制的循环(Condition Controlled Loop),由一个给定的条件来控制,第二种方式就是   计数控制的循环(Counter Controlled Loop),重复处理的次数是已知的,

循环结构的两种实现方法如下图

“当”型循环如上图所示,它是先测试循环条件P,根据测试条件如果为真则执行循环体,否则退出循环,

“直到”型循环如上图所示,它是先执行循环体,然后再测试循环条件P,根据测试条件如果为真则再次执行循环体,否则退出循环,

循环体(Body of Loop):被重复执行的操作A

如果第一次测试循环条件为真的话,”当”型循环与”直到”型循环是一样的,两者没有区别;

当第一次测试循环条件就为假时,我们可以看出”当”型循环一次也不执行,而”直到”型循环执行一次。

(当型循环结构  跟   直到型循环结构 是可以互相转化的。)

选择  循环结构的   一般原则

循环 次数已知

计数控制的循环结构

循环次数未知,循环的次数由一个给定的条件来控制

条件控制的循环结构

循环体至少要执行一次

“直到”型循环

 

变量名:   内存存储单元的一个符号名。

通过    引用符号名来访问其  所对应的   存储单元,

总结  保证循环可终止的条件是:

1.证 经有限次重复后,循环控制条件i<=5  不再满足

2.执行循环体时,必须改一个或多个变量的值

循环结构正着计数:i = i + 1    i <= 循环的上界

循环结构倒着计数:i = i - 1     i >= 循环的下界

一、     Raptor之循环结构

循环结构(loop) 它的核心有以下三点:

1.重复运算动作(body)

2.重复运算的次数怎么定?(condition)

以 数字  设定执行次数

以某项条件的发生 而  停止重复运算

3.循环内的语句应  能改动  条件变量  以脱离循环

注意:Raptor图的循环分支是条件为  no的分支进行循环,为yes的分支退出循环。

注意:

1:字母是区分大小写的

2:Raptor的循环分支是  no分支

while循环语句

一、          循环结构的思想及意义:

循环结构的思想就是重复要做同样的事,   也就是程序中重复执行的语句,

我们只要控制好循环的  初值  ,条件  和步长   就可以轻松解决问题。

循环三要素: 初值   条件  步长

二、          while的基本格式*******

(1)While它的格式变形如下:(流程图如右图所示: 当型循环结构)

表达式1;        //初值

while(  表达式2  )    //条件

{

     执行语句;

     表达式3;   // 步长

}

 

 

其中表达式1代表了程序循环前的初始值,

表达式2代表了控制条件,

表达式3代表了增量变化   (步长)

while循环语句中,

while后一对圆括号中  表达式2的值 决定了循环体是否进行,

因此,进入while循环后,一定有能使表达式2的值变为(  0  / 假  )  的操作,*******

否则,循环将会无限制地进行下去。

(3)其中表达式2代表了循环条件,整个复合语句为循环体。

do---while循环语句

在循环中有当型循环,还有直到型循环。

接下来我们就来学习下   直到型循环。

结合while循环结构, 分析 while  do...while  的区别

While它的格式变形如下;

表达式1;        //初值

while(表达式2)    //条件

{

     语句;

     表达式3;   // 步长

}

一、  do—while语句格式

do—while语句格式

表达式1;   // 初始值

do

{

语句;

表达式3;  //步长

}

while(表达式2); //判定条件

其中表达式1代表了程序循环前的   初始值,

表达式2代表了   控制条件,

表达式3代表了   增量变化

这种格式在程序中已经很少用了。

主要应用于下种变形格式:

do—while语句格式变形

do

{

语句;

} while   (条件表达式);

do-while语句的思想及意义

do英文翻译成中文是  做   的意思,

那么从上面的结构我们也能看出,do语句后    判断条件表达式,

如果条件表达式成立,再次执行语句,直到条件表达式不成立,

往下继续执行。

所以do—while的中心思想是      至少执行一次循环语句。

但是,while循环结构,          至少执行0次循环语句。

do—while的流程图如下:

2  while 与do—while的相同与不同总结?

(1)while 语句是先计算表达式的值,再执行循环体,   do…while是执行完一次循环体,再计算表达式的值

(2)当表达式的值第一次为假时,while的循环体一次都不执行,do…while则执行一次循环体;

(3)当表达式的值为真时,两者无区别

(4)在不确定  条件次数  的情况下,  程序一般用while比较多

for循环语句

一、          for 循环的思想及意义

for 循环为   当型循环。

for循环最容易实现计数控制循环方法。

for循环的使用最为灵活,且适合应用在循环次数确定的情况下。

for循环的思想是,

先分析清楚循环的初始值,

循环的控制条件,

循环变量的步长变化,

然后直接把语句再写到for的循环体里即可,

这样可以让问题想的很清楚,流程也很清楚。

二、          for循环语句的应用

for语句是c语言所提供的功能更强,使用更广泛的一种循环语句。

  1. 1.        for语句的一般格式

第1种情况

for(表达式1;表达式2;表达式3)

初值  ;    条件  ;   步长

语句;

第2种情况

for(表达式1;表达式2;表达式3)

初值  ;    条件  ;   步长

{

语句块;

}

for语句的注意事项

(1)各表达式   之间分号  不能省略

(2)表达式1与表达式2与表达式3均可省略,   一般是不省略的。

当表达式1省略时,相当于省去了为循环变量赋初值,此时应在for语句之前给循环变量赋初值

当表达式2省略时,表示不判断循环条件,也就是认为表达式2始终为真, 这时应在循环体内设法结束循环,否则将成为死循环

当表达式3省略时,即省去  修改循环变量的值,  但此时应在循环体内设法结束循环

虽然说表达式可以省略,但是在使用for时,还是要正常使用的,也就是该有的都有。

循环中的跳转语句  以及  循环嵌套

一、          跳转的思想及意义:

break和continue都是循环  中途  退出语句,

其中break语句用来跳出 一层 循环结构;

continue语句用来结束  一次 循环。

跳转的思想就是在  循环过程中出现了特殊情况,

一是终止循环;                    break

二是跳过去了某次,还继续下次。    continue

二、          什么是循环跳转

循环跳转指的是在循环结构当中, 出现的  强制终止循环  或  跳过某些次的循环的  一种操作。

三、          循环中的特殊情况应用

for循环语句是循环结构中使用最多最灵活的语句。循环结构中用for语句也可以更好的体现出跳转及嵌套的思想的过程。

  1. 1.         break语句

break语句可用于选择结构中的switch语句,也可能用于循环结构中

break可以用于switch中的case搭挡,跳出switch语句。 (请参考第六单元)

break可以用于循环结构中,中止循环

break在循环语句中的基本格式如下:

①                                       do

{

break;

}while(条件);

②                                        while(条件)

{

break;

}

③                                        for(初值;条件;增量)

{

break;

}

break可以用于任意循环结构语句中,使用最多的是for循环里

注意:break可以用于switch与循环语句中,不能单独用于if语句中.

Break直接与if运用是不可以的,但是可以嵌套在循环语句中,和If一起使用!!!

  1. 2.        continue

(1)continue语句是继续的意思  , 跳过本次循环,还继续下一个循环.只能用于循环结构中

(1)     continue的基本格式

①                                       do

{

continue

}while(条件);

②                                        while(条件)

{

 continue

}

③                                        for(初值;条件;增量)

{

  continue;

}

注意:continue   只可以用于循环结构语句中.

一、          什么是嵌套循环

嵌套循环的  就是一个循环结构体内     还有另一个循环结构,也称为  多重循环。

嵌套循环中任何一种循环结构语句都可以嵌套三种循环结构语句中的任意一种或多种;常见for语句嵌套for语句

电影院观影代码

/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
int i;
char arr[][]={"何以为家","圣杯骑士","小黄人","星球大战","金牌特工"};
char a1[]="何以为家",a2[]="圣杯骑士",a3[]="小黄人",a4[]="星球大战",a5[]="金牌特工";
void show_menu(){
printf("\n\t\t\t2019最美精彩预告片\n");
printf("\t\t\t1.查看预告简介\n");
printf("\t\t\t2.调查吸引度\n");
printf("\t\t\t3.购票观影\n");
printf("\t\t\t4.刷新\n");
printf("\t\t\t5.查看所有\n");
printf("\t\t\t0.退出\n");
}
/*查预告功能*/
void intro(){
char brr[];
printf("please input movie name\n");
scanf("%s",&brr);
if(strcmp(brr,a1)==){
printf("法庭上,十二岁的男孩赞恩向法官状告他的亲生父母,原因是,他们给了他生命。\n");
}else if(strcmp(brr,a2)==){
printf("马利克的哲学美学,广角的绝美影像.\n");
}else if(strcmp(brr,a3)==){
printf("超人气配角无理头登场.\n");
}else if(strcmp(brr,a4)==){
printf("全新特务间谍电影,独特的幽默将是亮点.\n");
}else{
printf("我们将尽快整合您需要的电影.\n");}
}
/*调查吸引度*/
void survey(){
int n[];//n为对象
float p;//吸引度
for(i=;i<;i++){
printf("请输入对第%d部电影感兴趣的人数:",i+);
scanf("%d",&n[i]);
}
for(i=;i<;i++){
p=(float)(n[i]*/);
printf("第%d部电影的吸引度是%.2f%%\n",i+,p);}
}
/*购票功能*/
void ticket(){
char m[];
int x,y,zong,a=;
printf("请输入购票名称:");
scanf("%s",&m);
for(i=;i<;i++)
{
if(strcmp(m,arr[i])>)
{
a=;
}
}
if(a==)
{
printf("请输入购票张数:");
scanf("%d",&x);//x为购票张数
printf("确认结算0/1:");
scanf("%d",&y);
zong=x*;
if (y==){
printf("本次影片%s需支付金额%d元",m,zong);
}else if(y==){
printf("欢迎选购其他影片,继续观影\n");
}else{
printf("error number!!!");
}
}else{
printf("今日暂无该影片上映!");
} }
void showt()
{
for(i=;i<;i++)
{
printf("\t\t\t\t%s\n",arr[i]);
} }
void main()
{
int q;//q代表功能编号
for (i=;i>;i++){
show_menu();
printf("请输入功能编号:");
scanf("%d",&q);
switch (q){
case :intro();break;
case :survey();break;
case :ticket();break;
case :system("cls");break;
case :showt();break;
case :exit();break;
default :printf("您输入的功能编号有误,请重新输入\n");
}
}
}

C语言入门7-程序设计方法基础-循环结构的更多相关文章

  1. Go 语言入门(一)基础语法

    写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(一 ...

  2. 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射

    使用Code First建模自引用关系笔记   原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...

  3. Go语言入门系列(五)之指针和结构体的使用

    Go语言入门系列前面的文章: Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 1. 指针 如果你使用过C或C++,那你肯定对指针这个概念 ...

  4. [Java基础]循环结构3

    [Java基础]循环结构3 break 与 continue 中断循环... /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:BreakTest.java 编写时间:2016/6 ...

  5. [java基础]循环结构2

    [java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:GameForFor.java 编写时间:2016 ...

  6. [java基础]循环结构1

    [java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...

  7. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  8. 【C语言入门教程】3.4 循环控制语句

    循环结构又称重复结构,是程序的 种基本结构之一.它反复执行循环体内的代码,解决需要大量重复处理的问题.循环结构由循环控制语句实现,其中内建有条件控制语句,用来判读是否继续执行循环操作.C 语言提供了  ...

  9. Java基础语法Day_02-03(数据类型、运算符、方法、循环结构)

    第5节 数据类型转换 day02_01_数据类型转换_自动转换 day02_02_数据类型转换_强制转换 day02_03_数据类型转换_注意事项 day02_04_ASCII编码表 第6节 运算符 ...

随机推荐

  1. 使用Netty实现通用二进制协议的高效数据传输

    Netty是一个高性能的NIO通信框架,提供异步的.事件驱动的网络编程模型.使用Netty可以方便用户开发各种常用协议的网络程序.例如:TCP.UDP.HTTP等等. Netty的最新版本是3.2.7 ...

  2. 深入了解Windows句柄到底是什么(句柄是逻辑指针,或者是指向结构体的指针,图文并茂,非常清楚)good

    总是有新入门的Windows程序员问我Windows的句柄到底是什么,我说你把它看做一种类似指针的标识就行了,但是显然这一答案不能让他们满意,然后我说去问问度娘吧,他们说不行网上的说法太多还难以理解. ...

  3. 确认过眼神,看清HTTP协议

    导读:什么是 HTTP?它有什么属性?我们常用的是什么呢?快来阅读本文,将会为你一一道来. 什么是 HTTP 协议? 在了解HTTP之前,我们需要了解什么是网络通信模型(也就是我们常说的 OSI 模型 ...

  4. Hadoop 学习之路(一)—— 分布式文件系统 HDFS

    一.介绍 HDFS (Hadoop Distributed File System)是Hadoop下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 2 ...

  5. Neo4j 爬坑笔记for3.2.6

    官网语法,非常详尽:http://neo4j.com/docs/developer-manual/current/cypher/clauses/match/ A:请对应版本号,不同大版本可能会有很大区 ...

  6. jQuery调整表列(左右拉动调整列宽)插件__colResizable,动态列如何使用

    官网地址:http://www.bacubacu.com/colresizable/ 这里值得注意的是,如果是动态加入的列,则需要先清理调用插件生成的class,id和div之后再重新调用才会有作用. ...

  7. C#使用 SSL Socket 建立 Client 与 Server 连接

    当 Client 与 Server 需要建立一个沟通的管道时可以使用 Socket 的方式建立一个信道,但是使用单纯的 Socket 联机信道可能会担心传输数据的过程中可能被截取修改因而不够安全,为了 ...

  8. Python基础(九) 常用模块汇总

    3.8 json模块重点 json模块是将满足条件的数据结构转化成特殊的字符串,并且也可以反序列化还原回去. 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列 ...

  9. 如何正确选择挑选适合的VPS服务器

    就来讲讲,如何挑选适合你的VPS.基本过程就是:1.你使用VPS的用途:2.你需要的线路:3.你要选择的操作系统:4.你购买VPS的大概预算是多少. 一.用途方法,其实买VPS就是:建站.VPN使用. ...

  10. RobotFramework + HTTP接口自动化实现

    一.          什么是自动化测试? 1.      定义 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,也可以说是软件测试的一种技术手段. 2.      常见工具 Appium ...