4.3 Go for

Go的for循环是一个循环控制结构,可以执行循环次数。

语法

package main

import "fmt"

func main() {
//创建方式一,循环条件是布尔值表达式
num := 0
for num <= 10 {
fmt.Println("我说老男孩golang 你说哟", num)
num++
} //创建方式二,无限循环,go不存在while语法
num1 := 0
for {
if num1 <= 10 {
fmt.Println("人生苦短 说go就go", num1)
} else {
break //超出了就终止这个for循环
}
num1++ //等于num1=num1+1
} fmt.Println("----------")
//创建方式三 for-range 用于遍历字符串、数组
var teacher = "wu pei qi"
//字符串可以用索引取值,注意格式化输出的时候,要输出码值对应的字符 %c 格式化
for i := 0; i < len(teacher); i++ {
fmt.Printf("%c\n", teacher[i])
}
fmt.Println("----------") //创建方式四
student := "chaoge牛逼"
//for range遍历,是按照字符方式遍历,支持中文
for k, v := range student {
fmt.Printf("索引:%v 值:%c\n", k, v)
}
fmt.Println("----------")
//传统遍历字符串是按字节遍历,汉字对应utf8编码是3个字节
var class1 string = "python全栈开发班"
//必须转化为[]rune切片类型,方可使用
class2 := []rune(class1)
for i := 0; i < len(class2); i++ {
fmt.Printf("%c\n", class2[i])
}
}

打印乘法表,层数由用户输入

package main

import "fmt"

func main() {
var num int
fmt.Println("请输入层数:")
fmt.Scanln(&num)
//i表示层数
for i := 1; i <= num; i++ {
//j表示每层打印多少
for j := 0; j <= i; j++ {
fmt.Printf("%v * %v = %v \t", j, i, j*i)
}
fmt.Println()
}
}

三次登录

package main

import "fmt"

func main() {
var name string
var pwd string
var logincache = 3
//循环限制三次登录
for i := 1; i <= 3; i++ {
fmt.Println("请输入账号:")
fmt.Scanln(&name)
fmt.Println("请输入密码:")
fmt.Scanln(&pwd)
if name == "alex" && pwd == "alex3714" {
fmt.Println("欢迎鸡汤王归来!!")
break
} else {
logincache-- //每次登录失败减一
fmt.Printf("你还有%v次机会尝试,老铁\n", logincache)
}
}
}
 

随机推荐

  1. 2019-2020-1 20199325《Linux内核原理与分析》第七周作业

    第七周作业 1.进程描述符task_struct数据结构(一) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct数据结构很 ...

  2. 如何在 Inno Setup 中执行命令行的命令

    Pascal Scripting: Exec Prototype: function Exec(const Filename, Params, WorkingDir: String; const Sh ...

  3. 如何打开 Visual Studio 的 Dump,适用于调试 appcrash,exception

    https://keithbabinec.com/2018/06/12/how-to-capture-and-debug-net-application-crash-dumps-in-windows/ ...

  4. eclipse自动补全导致变量会跟上String后缀的问题解决

    https://blog.csdn.net/feinifi/article/details/103665860

  5. Ubuntu登陆时忘记密码怎么办

    有时候由于各种原因,用户会忘记自己登陆Ubuntu的登陆密码,这个时候我们能怎么办呢? 第一步:先重启电脑,开机时长按shift键,进入grub菜单: 第二步:按“e”键编辑启动项,显示如下图,将下图 ...

  6. 使用Hexo框架搭建博客,并部署到github上

    开发背景:年后回来公司业务不忙,闲暇时间了解一下node的使用场景,一篇文章吸引了我15个Nodejs应用场景,然后就被这个hexo框架吸引了,说时迟,那时快,赶紧动手搭建起来,网上找了好多资料一天时 ...

  7. Linux 下如何产生core文件(core dump设置)

    转自:https://blog.csdn.net/star_xiong/article/details/43529637 今天在Linux下调试C程序时,出现段错误,习惯性的ls下当前目录,发现没有生 ...

  8. Knapsack Problem

    0-1背包 描述:N件物品,第i件的重量是w[i],价值v[i].有一个容量为W的背包,求将哪些物品放入背包可使总价值最大.每件物品可以用0或1次. 分析:根据题意,可以写出表达式: \[max(\S ...

  9. tarjan 算法应用

    主要讲证明,流程倒是也有 然后发现自己并不会严谨证明 其实后面一些部分流程还是挺详细 本来这篇blog叫做"图论部分算法证明",然后发现OI中的图论想完全用数学上的方法证明完全超出 ...

  10. MySQL Windows 环境安装

    1.下载 MySQL Windows 安装包 下载地址:https://downloads.mysql.com/archives/installer/ 我这个是 MySQL 5.7 版本 2.直接双击 ...