鱼C-小师妹 发表于 2021-4-16 08:38:58

07 - 流程图 VS 盒图?【三大结构|总结(下)】

本帖最后由 鱼C-小师妹 于 2021-5-3 15:26 编辑

在线讲解:

https://www.bilibili.com/video/BV1HT4y1K7DY?p=9

上一讲我们搞定了顺序结构和选择结构。

这一讲来看三兄弟中的大哥:循环结构:



在程序设计中,算法的某些操作步骤在一定条件下会被重复执行,这就要用到“循环结构“。

通常就是由以下三个元素组成:

循环控制语句+循环条件+循环体
反复执行的操作步骤称为循环体。

由若干个操作步骤构成,可以按顺序结构、选择结构或循环结构来组成。

就拿第二讲借玩具中的循环来说:



循环控制语句就是 while 循环。

循环条件:a < 5。

循环体:b = 1。

在 Python 中使用 while 语句编写循环结构。

会使用一个布尔表达式作为循环的控制条件。

但条件成立时,执行循环体中的代码;否则,结束循环,执行循环结构后续的代码:



根据循环次数是否确定,可以将循环结构分为:


[*]计数型循环
[*]条件型循环

我们一个一个来说。


计数型循环

这是一种循环次数确定的循环,通常就是采用一个用来计数的变量控制循环的次数。

需要咱们自己设置该变量的初始值,终止值,增量。

循环的结束条件就是计数变量超出给定的范围。

实现就用 whie 循环~

例如,现在求 1 到 100 间的自然数之和。

让我们算当然用首位相加的高斯求和公式。

但是,让计算机来算,那肯定是“傻算”。

管你是从 1 到 100 还是 10000,都是一个一个求和就好。

采用计数型循循环写程序:


[*]计数变量 i 的范围为 1 到 100
[*]i 从 1 开始,每次加 1
[*]大于 100 结束
[*]每次求和的值放在变量 s 中

根据这些就能轻松写出代码。

**** Hidden Message *****

此处请自己动手!


条件型循环

如果理解了上面的技术型循环,那条件型就很好理解了。

上面是确定的循环,那条件型就是不确定的循环结构。

通常采用标记值控制循环,当标记值条件不成立时,循环才会结束。

在循环体内一定要有改变循环条件的语句,让循环可以结束。

否则无休止的运行,就是我们说的“死循环”。

这个就需要画个基本框架图:



使用标记变量 state 控制循环,初始值为 True,激活循环,重复执行循环中的语句。

在循环体中,判断如果给定的布尔条件表达式成立时,就修改 state 的值为 False,下一次再进入循环就会结束。

严谨来说,计数型循环是可以用条件型循环来实现,因为计数本身也是条件嘛。

最后,快速介绍两种干预循环的语句:continue 和 break 。

在循环体中,当某个条件满足时,使用 continue 语句可以立即结束本轮循环。

而 continue 语句之后的代码就会被忽略,跳转到循环结构开始处,开始新一轮循环。

举个例子,例如打印 100 以内的奇数,就可以这么写:

i = 0
while i < 100:
    i += 1
    if i % 2 == 0:
      continue
    print(i)
i 是偶数时,就会提前结束本轮循环,开始下一轮循环。

在循环中 countinue 语句后面的语句会被忽略,因此整个过程只会输出 100 以内的所有奇数。

break 语句和 continue 的区别在于:

当满足某个条件,执行到 break 语句,直接跳出循环。执行循环结构后面的代码。
很像我们在:

https://www.bilibili.com/video/BV15K4y1o7zD
中的单步调试和单步跳过,不展开说啦,有兴趣的自己看视频哈。

使用 break 语句是强制性退出循环,不用考虑代码是否执行完哦,也不用管是否还符合条件。

例如将上面的 continue 换为 break,结果就只会看到 1,因为当 i 为 2 的时候,直接 break。

记住:

如果循环中出现 continue 或 break,那么只能画流程图。如果循环即没有 continue 也没有 break,则盒图或流程图都可以,视情况而定。
好啦,就到这里,下课!

Minecraft程序猿 发表于 2021-4-16 11:59:40

什么都没有——未完待续

hjg 发表于 2021-4-16 16:22:48

哈哈,小师妹和小甲鱼是什么关系

bool想学C 发表于 2021-4-19 08:07:16

快更新!

calrai11 发表于 2021-6-8 15:55:52

11

天天今天要健身 发表于 2021-8-13 11:34:48

{:7_112:}

LyyLD 发表于 2021-11-1 21:55:23

兮兮学编程 发表于 2022-1-17 13:58:37

我爱大湿妹

小五亦生 发表于 2022-2-23 20:10:35

1

清梦1419 发表于 2023-2-10 09:35:37

666

xier00 发表于 2023-3-16 15:02:43

check

Alexiiis 发表于 2023-5-31 22:48:43

沙发

pingkong 发表于 2023-11-2 08:52:22

学习一下下
页: [1]
查看完整版本: 07 - 流程图 VS 盒图?【三大结构|总结(下)】