2024/8/24第五次记录:第五章循环结构

第五章循环结构

三大基本结构:顺序结构,分支结构,循环结构

C语言用一定的方式控制重复,提供了3中循环控制语句。即 for 语句, while 语句, do···while 语句,前两者是“先判断后操作”的模式,后一个是“先操作后判断”的模式。

5.1 for 语句控制的循环

通常用于控制与计数有关的循环。

5.1.1 for 语句的基本格式:

for(表达式1;表达式2;表达式3)
{
	循环体;
}

执行流程如下:
在这里插入图片描述
首先把“表达式1”执行一次,然后进入先判断后操作模式的循环,反复进行如下处理:计算“表达式2”的值,计算结果是true(在C语言可能出现“非0即真”的判断方式)则依次把“操作序列”和“表达式3”执行一遍。一旦某次计算“表达式2”的值是false,循环终止,转到for后面的语句继续执行。

5.1.2 用 for 语句控制计数:

for(计数变量=初值;计数变量<=终值;计数变量)
{
	循环体;
}

循环次数=终值-初值+1;

5.1.3 for 语句的几种特殊用法:

  1. 表达式1为空
表达式1
for(;表达式2;表达式3)
{
	循环体;
}

上下两种写法效果完全相等

for(表达式1;表达式2;表达式3)
{
	循环体;
}
  1. 表达式2为空
    如果表达式2的为空,编译程序会以表达式2的值恒为“真”处理,程序会陷入死循环,除非有其他方法终止循环。

  2. 表达式3为空
    如果表达式3的为空,循环控制变量始终保持不变,程序可能会陷入死循环。但是允许将表达式3写在循环体内。

for(表达式1;表达式2;)
{
	循环体;
	表达式3;
}
  1. 循环体为空
for(表达式1;表达式2;表达式3)
;
5.2 while 语句控制的循环

通常用于控制循环条件明显,且知道循环终止条件而循环次数不明确时。

5.2.1 while 语句的基本格式:

while(表达式)
{
	循环体;
}

执行流程如下:
在这里插入图片描述
while语句中的“条件”是计算结果是逻辑的表达式,“需要重复的操作”是循环体,控制的是先判断后操作模式的循环:先计算“条件”,计算结果是true(在C语言可能出现“非0即真”的判断方式)则执行一次循环体。如此反复,一旦某次计算“条件”的值是false,则循环终止,转到while后面的语句继续执行。用 while 语句控制计数时需要注意,它只提供一个循环控制的条件。因此在进入while循环之前需要把计数变量赋初值,计数变量的变化规律通常写在循环体的最后。功能上 for 语句和 while 语句可以相互代替。

5.3 do···while 语句控制的循环

do···while 语句的基本格式:

do
	{
		循环体;
	}
while(表达式);

执行流程如下:
在这里插入图片描述

其中的“条件”就是格式中的“逻辑表达式”,“需要重复的操作”是循环体,控制的是先操作后判断模式的循环:先把循环体执行一次,然后计算“条件”,计算结果是true(在C语言可能出现“非0即真”的判断方式)则再执行一次循环体,再次计算“条件”。如此反复,一旦某次计算“条件”的值是false,则循环终止,转到do…while后面的语句继续执行。

5.4 break 和 continue

break:提前终止循环,转到循环语句的后续语句
基本格式:

break;

如果存在循环嵌套,则终止其所在的最内层循环。

continue:用于跳过本轮循环体中尚未执行的语句,转而执行下一次的条件判断。
基本格式:

continue;
5.5 循环等典型应用

5.1.1 有关数列计算的问题

  1. 已知通项公式的计算问题
    eg:“已知数列的通项公式,求该数列的前n项和”是这一类问题的典型代表。数列求和都可以用如下模式解决。
(1)准备一个计数变量 i 和一个求和变量 s
(2)for(i=1,s=0;i<=n;i++)
{
	由通项公式计算数列第 i 项;
	把第 i 项的值累加到变量 s 中;
}

若干项不符合通项公式或者不易求出,这时可以把前面这几项的和作为求和变量s的初值,让变量 i 从符合通项公式的那一项开始计数。
更复杂一点的情况是数列的通项公式中含有不能直接运用计算符或者数学函数计算的成分,这时就需要在设计程序时使用一点小技巧。

  1. 已知递推公式的计算问题
    eg:已知数列的递推公式求有关数据,如指定求指定项的值是多少,求数列从第几项开始满足某条件等,求前n项和当然也是问题之一。这一类问题应用十分广泛,有些表面看来与数列无关的问题实际上都可以归为这一类。解决这类问题的方法是递归(后面章节会讲到)和循环。求解递推类问题经常推广到求解第n项
  2. 其他计算问题
    求解近似值
  3. 完全性问题
    指对给定范围内的所有数据,检验它们是否满足指定的条件。
  4. 存在性问题
    对于给定范围内的所有数据,检查是否至少存在一个数满足指定条件。
    求解存在性问题的一般做法:先设置一个逻辑变量,初值为“否”,然后以循环方式逐个检查给定范的每一个数,一旦找到一个满足条件的,就把逻辑变量置为“是”并终止循环。如果始终找不到满足条件的数,则循环结束后逻辑变量保持原值“否”。
5.6 循环嵌套

循环嵌套:在一个循环的循环体内再次使用循环。
编写带有嵌套的循环通常采用框架结构,由粗到细进行细化。
对于有循环嵌套的程序,即使程序代码很短,也可能需要耗费很长的时间。比如k层嵌套的循环,每一层循环需要执行ni(k=1,2,…,k)次,则最里层循环的循环体中的语句将执行n1×n2×…×nk次。

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值