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

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

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

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

如何控制循环的结束呢?

第一种方式就是  条件控制的循环(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. OpenGL与Directx的区别

    OpenGL 只是图形函数库. DirectX 包含图形, 声音, 输入, 网络等模块. 单就图形而论, DirectX 的图形库性能不如 OpenGL OpenGL稳定,可跨平台使用.但 OpenG ...

  2. git如何merge github forked repository里的代码更新

    git如何merge github forked repository里的代码更新? 问题是这样的,github里有个项目ruby-gmail,我需要从fork自同一个项目的另一个repository ...

  3. ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件

    1.ViewPager在处理滑动事件的时候要用到OnPageChangeListener( 代码:this.viewPager.setOnPageChangeListener(new MyListen ...

  4. 常用URL分享,实用地址

    常用地址 文库文档免费下载地址1:http://www.hiwenku.com/ 文库文档免费下载下载2:http://www.20009.net/wk.html google地图拾取器:http:/ ...

  5. 『 效率工具 』Spring Boot版的轻量级代码生成器,减少70%以上的开发任务

    一. 前言 之前很着迷于代码自动生成,减少写重复代码的工作量.网络上也搜索了很久,有基于插件的,有GUI的.但其配置和学习成本都比较高,都不是很如我意. 本想自己用SpringBoot写一个,在收集相 ...

  6. 13 CSS样式权重问题

    <!-- 权重问题整体说明: 1.权重的意义:判定CSS属性的优先级高低,也就是说判定那个CSS的属性优先显示,将其他的低优先级的CSS样式覆盖掉. 2.如何判断权重:数选择器的数量,按照Id选 ...

  7. 基于 HTML5 Canvas 的元素周期表展示

    前言 之前在网上看到别人写的有关元素周期表的文章,深深的勾起了一波回忆,记忆里初中时期背的“氢氦锂铍硼,碳氮氧氟氖,钠镁铝硅磷,硫氯氩钾钙”.“养(氧)龟(硅)铝铁盖(钙),哪(钠)家(钾)没(镁)青 ...

  8. IM即时通讯:如何跳出传统思维来设计聊天室架构?

    因为视频直播业务的大规模扩张,聊天室这种功能在最近几年又火了起来.本篇文章将会重点挑选聊天室这个典型场景,和大家分享一下网易云信在实现这个功能时是如何做架构设计的. 相关推荐阅读几十万人同时在线的直播 ...

  9. win10安装docker

    配置首先需要Hyper-v和容器,这样就可以运行Linux的镜像了 如果是win10home版或者是其他版本就需要安装visulbox了, 然后去官网https://www.docker.com/pr ...

  10. spring 5.x 系列第17篇 —— 整合websocket (xml配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 项目模拟一个简单的群聊功能,为区分不同的聊 ...