当型循环和直到型循环(精讲)

目录

  • 背景
  • 概念
    • 当型循环
    • 直到型循环
  • 二维表对比
  • 图示与代码
    • 当型循环
      • 流程图
      • N-S图(盒图)
    • 直到型循环
      • 流程图
      • N-S图(盒图)
  • 例子
    • 当型
      • 图示
      • 代码
    • 直到型
      • 图示
      • 代码
  • Do–Loop 和For –Next
    • 相同点:
    • 不同点:
    • 代码
  • 总结

背景

两年前写过一篇 当型循环和直到型循环的博客,访问量较高,但当时刚开始接触博客,文章看上去着实水平不高,并且存在一些问题,随即又重新学习了一下,写下了这篇文章。

概念

    直到型循环和当型循环是编程中常用的两种循环结构。

当型循环

    是在循环体执行之后判断循环条件,如果条件为真,则继续执行循环体;如果条件为假,则跳出循环。这种循环结构可能导致循环体一次都不执行。

直到型循环

    是在循环体执行之前判断循环条件,如果条件为真,则跳出循环;如果条件为假:,则执行循环体,并在循环体执行完毕后再次判断循环条件。这种循环结构保证了循环体至少会被执行一次。

二维表对比

区别:

  1. 判断条件的时机不同:直到型循环在循环体执行之前判断条件,当型循环在循环体执行之后判断条件。
  2. 执行次数不同:直到型循环至少会执行一次循环体,当型循环可能一次都不执行循环体。

联系:
1 两者都是循环结构,用于重复执行一段代码。
2. 两者都需要一个循环条件,用于判断是否继续执行循环。
以下是用二维表表示直到型循环和当型循环的区别和联系:

直到型循环当型循环
执行顺序先执行,再判断先判断,再执行
执行次数至少执行一次循环体可能一次都不执行循环体
判断条件成立执行条件不成立执行
脱离循环条件不成立条件成立

图示与代码

当型循环

流程图

在这里插入图片描述

N-S图(盒图)

先判断后执行,当P1条件成立的情况下,反复执行A语句,直到P1条件不成立为止
在这里插入图片描述

直到型循环

流程图

在这里插入图片描述

N-S图(盒图)

先判断后执行,当P1条件成立的情况下,反复执行A语句,直到P1条件不成立为止
在这里插入图片描述

例子

计算1+2+3+…100的和

当型

图示

在这里插入图片描述
在这里插入图片描述

代码

这里使用简单的vb代码

Private Sub Form_Click()
Dim s As Integer, n As Integer
s = 0: n = 1
Do While n <= 100
s = s + n
n = n + 1
Loop
Print "1+2+3+...100="; s
End Sub

直到型

图示

在这里插入图片描述
在这里插入图片描述

代码

Private Sub Form_Click()
Dim s As Integer, n As Integer
s = 0: n = 1
Do Until n > 100
s = s + n
n = n + 1
Loop
Print "1+2+3+...100="; s
End Sub

Do–Loop 和For –Next

相同点:

  1. 都是用于重复执行一段代码,实现循环的目的。
  2. 都需要一个循环变量来控制循环的次数或条件。

不同点:

  1. 语法结构不同:Do-Loop使用的是Do关键字,后跟循环条件,而For-Next使用的是For关键字,后跟循环变量和循环范围。
  2. 控制方式不同:Do-Loop可以根据循环条件的真假来决定是否继续循环,可以是无限循环或有条件循环;而For-Next是根据循环变量的递增或递减来控制循环次数,循环次数是有限的(循环次数确定)。
  3. 循环变量的使用不同:Do-Loop可以使用任意变量作为循环条件,可以在循环体内自行修改循环条件;而For-Next需要在循环开始前定义循环变量,并在循环体内不可修改循环变量。
  4. For –Next中Next i 可以自行给控制变量i 加上步长;而Do–Loop必须自己写控制变量的变化
  5. Do–Loop语句中控制变量的初值往往要放在循环外面设置

代码

Do-Loop的示例代码:

Dim i As Integer
i = 1
Do While i <= 5Console.WriteLine(i)i = i + 1
Loop

解释:上述代码使用Do-Loop结构,先定义一个整数变量i,并将其初始化为1。然后使用Do关键字开始循环,循环条件为i小于等于5。在循环体内,打印出i的值,并将i加1。循环执行完毕后,再次判断循环条件,如果满足条件则继续执行循环体,否则跳出循环。

For-Next的示例代码:

For i = 1 To 5Console.WriteLine(i)
Next

解释:上述代码使用For-Next结构,直接使用For关键字定义循环变量i,并指定循环范围为1到5。在循环体内,打印出i的值。循环执行完毕后,循环变量i会自动递增,然后再次判断循环条件,如果满足条件则继续执行循环体,否则跳出循环。

总结

1、当型循环适合于不确定循环体是否需要执行的情况,循环条件可能在循环体执行后才能确定。
2、直到型循环适合于至少需要执行一次循环体的情况,循环条件可能在循环体执行前就能确定。
3、在选择循环结构时,需要根据具体的需求和逻辑来确定使用哪种循环结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13460.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java的数据结构

目录 数据结构: 1,数组 2,链表 3,哈希表 4,队列 5,堆 6,栈 7,树 8,图 数据结构: 1,数组 优点: 查找元素的速度很快; 按照索引来遍历数组的速度也很快。 缺点: 数组大小无法改变,一旦创建就无法扩容; 数组只能存储一种数据类型的数据; 插入、修改、删除时比较麻烦&…

第11章:C语言数据结构与算法初阶之排序

系列文章目录 文章目录 系列文章目录前言排序的概念及其运用排序的概念常见的排序算法 常见排序算法的实现1.直接插入排序2. 希尔排序&#xff08;缩小增量排序&#xff09;3. 直接选择排序4. 堆排序5. 冒泡排序6. 快速排序将区间按照基准值划分为左右两半部分的常见方式&#…

<Linux开发>驱动开发 -之- Linux I2C 驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -之- Linux I2C 驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移植过程详细…

flutter聊天界面-加号【➕】更多展开相机、相册等操作Panel

flutter聊天界面-加号【➕】更多展开相机、相册等操作Panel 在之前实现了flutter聊天界面的自定义表情的展示&#xff0c;这里记录一下更多操作展开的相机、相册等操作功能实现。 一、查看效果 更多操作展开的相机、相册等操作功能实现。 二、代码实现 展开的操作按钮可能比…

嵌入式基础知识-总线带宽

带宽&#xff0c;最容易想到的是上网用的网络带宽&#xff0c;在嵌入式软件开发中&#xff0c;也会用到带宽&#xff0c;这个带宽的含义就不一样了&#xff0c;区别是什么&#xff1f;本篇就来介绍一下&#xff0c;并通过一些例子来进行带宽的计算。 先来简单看下不同领域的带…

第二节 给SpringBootAdmin的server端加入spring security安全控制

前言 本来想用一节就写完SpringBootAdmin的&#xff0c;但随着研究的深入发现一节应该是不够的&#xff0c;网上的资料也不会非常系统&#xff0c;官网的例子有些已经好几年没更新了&#xff0c;所以接下来还是系统性的来写下吧 第一节 完成基础配置&#xff0c;暴露所有端点…

有AI助手帮你,刷任何题都不吃力!

Rider如何配置AI助手&#xff1f; 前言&#xff1a;一、选择AI助手二、如何在Rider中配置CodeWhisperer三、使用方法四、分享你的AI解决方案 明明自觉学会了不少知识&#xff0c;可真正开始做题时&#xff0c;却还是出现了“一支笔&#xff0c;一双手&#xff0c;一道力扣&…

html案例2

效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initia…

计算机网络 day4 IP地址的两部分-A、B、C、D、E五类IP地址-私有地址-子网掩码-DNA服务器-域名解析服务

目录 三创网络拓扑结构图&#xff1a; 普通家庭网络拓扑结构图&#xff1a;&#xff08;也可以直接使用 子母路由器 &#xff08;母&#xff1a;无线路由器&#xff09;&#xff08;子&#xff1a;信号放大器、中继器&#xff09;&#xff09; 网络层&#xff1a;&#xff0…

用颜色表示数据的第三个维度

横纵坐标显示时间和空间后&#xff0c;第三个数据的特征有时就不好表示了&#xff0c;3d图有的时候看起来更复杂。对于某些情况&#xff0c;用颜色来表示更加简洁。 这里展示的效果图有点像烟花&#xff0c;所以选了这张&#xff0c;但是换其他的cmap才能使得数据展示更加直观 …

DDR3 控制器 MIG IP 详解完整版 (nativeVIVADOVerilog)

文章目录 前言一、MIG IP 核的配置二、MIG 交互的接口三、常用IP例化值四、小实验传图 前言 本节主要是介绍 Xilinx DDR 控制器 IP 的创建流程、IP 用户使用接口 native 协议介绍和IP 对应的 Example Design 的仿真和上板验证。。 提示&#xff1a;以下是本篇文章正文内容&…

如果遇到洪灾导致网络瘫痪,对讲机能起到什么作用?

当我们遇到洪灾这种突发事件时&#xff0c;网络基本就会处于瘫痪状态&#xff0c;人们的安全和生命也将面临着极大的威胁。而在这种时候&#xff0c;一种看似普通的通讯工具&#xff0c;却能够成为拯救生命的关键&#xff0c;它就是——对讲机&#xff01; 网络已经成为我们生…