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. [C语言] 获得 pwd 的几种函数

    _getcwd() GetCurrentDirectory GetModuleFileName main函数参数 argv[0] // crt_getcwd.c // This program pla ...

  2. 初篇:我与Linux

        据悉,红帽认证将于本年的8月份更换Rhel7为Rhel8.所以我想趁这次机会搏一搏.     我个人是初中就神仰Linux已久,只不过那个时候的我只知道Linux系统,不知道有什么区分.奈何那 ...

  3. 基于LINUX 主机防火墙的端口转发

    由于centos7之后将默认防火墙从原来的iptables更改为firewall.本文主要记录基于firewall的端口转发部署. 1.检查防火墙状态     systemctl status fir ...

  4. Unity(GameObject)

    ####1. 这个方法用于发送一个数据到指定的方法中,第三个参数是是否强制接收 以下三种方法发送消息的形式,各有不同的效果,可以通过第一个参数指定要发送的方法名名,第二个是发送的参数值,第三个参数是是 ...

  5. 实战-MySQL定时增量备份(2)

    概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了.所以要对我们的线上数 ...

  6. INTERVIEW #0

    一.造成网络延迟的可能原因 1,WiFi所有用户上下行流量共用一个信道,当用户太多或者有人在下载大的资源时带宽不够,丢包: 2,线路质量不佳导致信噪比太低,比如光纤损耗太大等. 二.IPv6优势 1, ...

  7. Android EventBus踩坑,Activity接收不了粘性事件。

    注解问题 EventBus 的 粘性事件,可以让 成功注册后的 Activity.Fragment 后再接收处理 这一事件. 但是今晚写代码时,突然发现粘性事件,发送不成功了.??? 具体情况是:我在 ...

  8. Gitlab常规操作

    一.Git和SVN的区别 和SVN类似,Git是一个版本控制系统(Version Control System,VCS),不同的是SVN为集中式版本控制系统,为单一的集中管理的服务器,保存所有文件的修 ...

  9. redis关闭报没有权限No auth

    Redis安装之后,如果设置了密码,需要在关闭服务的时候也提供密码,否则无法关闭服务,可以直接通过修改/etc/init.d/redis启动脚本解决. Redis服务的启动和关闭脚本,只需要在关闭的脚 ...

  10. P2432 zxbsmk爱查错

    描述:https://www.luogu.com.cn/problem/P2432 给你一个主串以及若干个子串,求最少需要删除几个字母,使得主串能由一些子串组成. dp [ i ] 表示前 i 个字符 ...