go中的 4种 for循环
package main
import "fmt"
func main() {
// 第一种写法
for i := 1;i < 10; i++ {
fmt.Println("Hello Golang");
}
// 第二种写法
j := 1
for j < 10 {
fmt.Println("Hello Go")
j++
}
// for 死循环,通常配合break使用
k := 1
for {
if k <= 10 {
fmt.Println("Hello")
} else {
break
}
k++
}
}
其他语言通常都有 for, while, do while 几种循环。但是 Go 只有一种 for 循环,是因为设计者认为,只需要 for 循环就已经足够完成 while 和 do while 的功能。
3 part loop, 类似于 C 中最常见的 for loop
for i := 0; i <= 10; i++ {
}
1
2
while loop
for x == true {
}
1
2
do while loop
for {
if x {
break;
}
}
1
2
3
4
5
infinite loop
for {
}
1
2
小公鸡卡哇伊呀~
关注
1
0
0
Go语言和其他语言不一样,它只有一种循环方式,就是for语句
可以参考如下公式:
|
1
2
3
|
for initialisation; condition; post{ //Do Something} |
执行顺序
- a.执行一次initialisation,初始化
- b.判断condition
- c.条件为true,执行{}内的语句
- d.语句执行之后执行post
使用方式举例:
1.基本使用类似其他语言的for
|
1
2
3
4
5
6
|
func ForTest1(){ for i:=1;i<=10;i++{ fmt.Printf("i=%d\t",i) } fmt.Println()} |
2.替代while语句
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
func ForTest2(){ i:=1 for ;i<=10; { i=i+2 fmt.Printf("i=%d\t",i) } fmt.Println() //等价于 for i<=10 { i=i+2 fmt.Printf("i=%d\t",i) fmt.Println() }} |
3.多条件(多重赋值)
|
1
2
3
4
5
6
7
8
|
func ForTest3(){ for x,y:=1,10; x<10 && y>1; x,y = x+1,y-1{ fmt.Printf("x=%d\t",x) fmt.Printf("y=%d\t",y) fmt.Println() } fmt.Println()} |
4.无限循环
|
1
2
3
4
5
6
7
8
9
10
|
func ForTest4(){ count:=1 for { fmt.Printf("Hello\t") if(count == 3){ break } count++ }} |
go中的 4种 for循环的更多相关文章
- 详细介绍javascript中的几种for循环的区别
偶然间见到了forEach循环,感觉很新奇,就研究了一下,顺带着把js中的几种for循环做了一个比较. 首先,简单说一下,js中一共大概有四种for循环:(1).那种简单常见的for循环:(2).fo ...
- 在存储过程中执行3种oracle循环语句
create or replace procedure pr_zhaozhenlong_loop /* 名称:在存储过程中执行3种循环语句 功能:利用循环给表中插入数据 调用: begin -- Ca ...
- Java中的几种常用循环
循环的条件 反复执行一段相同或相似的代码 一 for循环 先判断,再执行 代码示例为 ① for (int i = 0; i < args.length; i++) ...
- java中三种for循环之间的对比
普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreac ...
- 好文:javascript中的四种循环
https://juejin.im/entry/5a1654e951882554b8373622?utm_medium=hao.caibaojian.com&utm_source=hao.ca ...
- js中两种for循环的使用
针对两种for循环的使用 1. for in循环的使用环境 可用在字符串.数组.对象中, 需注意:其中遍历对象得到的是每个key 的value值 2. for 变量递加的方式 ...
- JavaScript 中的12种循环遍历方法
原文:JavaScript 中的12种循环遍历方法 题目:请介绍 JavaScript 中有哪些循环和遍历的方法,说说它们的应用场景和优缺点? 1.for 循环 let arr = [1,2,3];f ...
- javascript中的12种循环遍历方法1
1:for循环 let arr = [1,2,3]; for(let i =0;i<arr.length;i++){ console.log(i,arr[i]) } //for循环是js中最常用 ...
- 浅谈SQL Server中的三种物理连接操作
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...
- iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】
在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...
随机推荐
- 从头到尾创建一个vue项目
- 【Qt】开源一键代码开光神器,一行代码给你的项目施加祝福,减少Bug
年底啦,没什么项目,想摸鱼划水没见到什么好玩的东西,看到有人分享这个,直接做个库来玩下,之后说不定会嵌到公司的项目里面去.... 效果如下,佛光普照! 输入也只需要一行命令 magic_spells: ...
- 2023Java面试学习网站推荐
本文给大家推荐博主收藏的6个程序员面试学习站点,按照项目简介.网站截图.是否收费供大家参考. 1. JavaGuide 网站地址:https://javaguide.cn 项目简介:「Java学习 + ...
- freeswitch xml_rpc模块
概述 freeswitch有非常多的周边模块,给我们提供各种各样的功能,有些功能在适当的场景下可以极大的方便我们的开发和应用. 今天我们介绍一个不常用的模块mod_xml_rpc. freeswitc ...
- C# 加解密
1. Md5 /// <summary> /// 不可逆加密 /// 1 防止被篡改 /// 2 防止明文存储 /// 3 防止抵赖,数字签名 /// </summary> ...
- longjmp 使 C++ RAII 失效
C 语言的 longjmp 没有进行栈展开,而是直接跳转.从 longjmp 到 setjmp 之间的所有析构函数都没有调用,也就是 RAII 失效. #include <setjmp.h> ...
- Meta AI新发布的超大规模语言模型-OPT-175B
Meta AI在2022年5月3日新发布的OPT-175B模型,该模型是现阶段第一个模型参数超过千亿级别的开放模型,其次该模型与GPT-3相比,更加开放及便于访问. 具体开放性表现在如下几个方面: ...
- HanLP — 感知机(Perceptron)
感知机(Perceptron)是一个二类分类的线性分类模型,属于监督式学习算法.最终目的: 将不同的样本分本 感知机饮食了多个权重参数,输入的特征向量先是和对应的权重相乘,再加得到的积相加,然后将加权 ...
- 一 , FileChanle
package nio; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer ...
- html监听标签的resize
<html> <body> <div id="div1" style="width:100%;height:100%;"> ...