实现 while 和 dowhile 控制|学习笔记

简介: 本节课将讲解 While 和 do...while 的实现(完全没有编程经历的同学可以直接跳过)。而 Go 语言没有 while 和 do...while 语法,这一点需要注意,如果需要使用类似其他语言(比如 Java/c 的 while 和 do...while )可以通过 for 循环来实现其使用效果。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map: while 和 dowhile 控制学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9578


实现 while 和 dowhile 控制

 

内容介绍

一、实现 while 控制

二、实现 do...while 控制

 

本节课将讲解 While 和 do...while 的实现(完全没有编程经历的同学可以直接跳过)。而Go 语言没有 while 和 do...while 语法,这一点需要注意,如果需要使用类似其他语言(比如 Java/c 的 while 和 do...while )可以通过for循环来实现其使用效果。

 

一、实现 while 控制

1、for 循环实现 while 的效果:

循环变量初始化

for{

if 循环条件表达式{

break//跳出 for 循环

}

循环操作(语句)

循环变量迭代

}

说明以上内容:

首先在 for 循环外实现循环变量初始化,可以看到如上 for 循环为死循环。for 循环内if判断循环条件表达式,如果条件成立,则 break 跳出 for 循环,如果不成立则执行操作语句进行循环变量迭代。以上就相当于 while 循环的另外一种写法。总结如下:

(1)for 循环是一个无限循环

(2)break 跳出循环

2、快速入门案例

案例:使用上面的 while 写代码,实现输出10句“hello,world”。

(1)while 实现代码:

package main

import “fmt”

func main(){

//使用 while 写一段代码实现输出10句“hello,world”

var i int = 1

//根据需求定义循环变量初始化为1或0。这里初始化为1

for{//for为死循环

if i >10{ //循环条件

break //跳出 for 循环,或结束 for 循环。

}

fmt.Println(hello,world,i) //不满足if条件则输出 “hello,world ”和i。

i++  //循环便量的迭代

}

(2)运行结果:

D:\goproject\src\go_code\chapter05\fordemo>go run main .go

hello,world 1

hello,world 2

hello,world 3

hello,world 4

hello,world 5

hello,world 6

hello,world 7

hello,world 8

hello,world 9

hello,world 10

程序运行结果确实输出了十句,运行成功。而且整个for循环退出时i等于11,因为判断条件为 i>10,所以只有 i=11时,循环才会退出。为了验证退出时i的值,可以在程序最后对i进行打印,如下:

fmt.Println(“i=”,i)

}

运行结果:

hello,world 9

hello,world 10

i=11

 

二、实现 do...while 控制

1、for 循环实现 dowhile 的效果:

循环变量初始化

for{

循环操作(语句)

循环变量迭代

if 循环条件表达式{

break//跳出 for 循环

}

}

对上面的说明:与之前实现 while 不同,这里是先执行循环操作和变量迭代,再进行if循环条件的判断。会发现这种循环至少执行一次,而之前的 while 循环可能一次都不执行。总结如下:

(1) 上面的循环是先执行,再判断,因此少执行一次

(2) 当循环条件成立后,就会执行 break,break 就是跳出 for 循环,结束循环。

2、快速入门案例

案例:使用 do...while 写一段代码实现输出10句“hello,ok”

(1)dowhile 实现代码:

//使用 do...while 写一段代码实现输出10句“hello,ok”

var j int = 1  //定义变量 j,进行初始化为1。

for {

fmt.Println(hello,ok,j) //

j++ //循环便量的迭代。先执行以上代码,

if j > 10{  //再进行判断,if至少执行一次。

break //跳出循环

}

}

(2)运行结果:
D:\goproject\src\go_code\chapter05\fordemo>go run main .go

hello, ok 1

hello, ok 2

hello, ok 3

hello, ok 4

hello, ok 5

hello, ok 6

hello, ok 7

hello, ok 8

hello, ok 9

hello, ok 10

结果如上说明程序运行成功,而且当终止 for 循环的时候j也等于11,只有 i=11的时候条件 j>10才会成立,然后才会进行 break,跳出 for 循环。

相关文章
|
存储 安全 Java
技术好文:Tacacs+认证详细调研
技术好文:Tacacs+认证详细调研
552 0
|
机器学习/深度学习 存储 算法框架/工具
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(2)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(2)
206 0
System.BadImageFormatException: 未能加载文件或程序集
System.BadImageFormatException: 未能加载文件或程序集
|
JavaScript 前端开发 Java
Java+springboot药物不良反应智能监测源码 不良反应智能监测系统源码
ADR智能监测系统功能描述: (一)、系统管理 用户管理: 能够实现对系统用户的统一管理,方便系统用户的添加、编辑、删除等,具体功能如下: 1、支持自定义添加、删除、编辑系统用户。
110 3
|
数据采集 数据挖掘 API
如何使用item_get接口获取不同类别的商品信息?
在电商行业中,商品类别是进行商品组织和管理的关键要素。通过商品类别,我们可以对商品进行分类、筛选和比较,以便更好地了解市场需求和消费者行为。本文将介绍如何使用item_get接口获取不同类别的商品信息,以及如何对这些信息进行数据分析和挖掘。
|
云计算
【阿里云新品发布·周刊】第16期:OSS跨同城3AZ重磅发布,构造全面数据保护体系
点击订阅新品发布会! 新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 OSS跨同城3AZ重磅发布 2019年7月3日15时,OSS跨同城3AZ重磅发布。
7324 0
【阿里云新品发布·周刊】第16期:OSS跨同城3AZ重磅发布,构造全面数据保护体系
“智慧助老”弥合“数字鸿沟” 阿里柔军带着“小棉袄计划”来了!
近日发布的阿里巴巴《老年人数字生活报告》显示,我国网民规模达9.04亿人,但60岁及以上网民占比仅为6.7%。
“智慧助老”弥合“数字鸿沟” 阿里柔军带着“小棉袄计划”来了!
|
5天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
4天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知