4种循环 for、while、until、select,如果想要提早结束循环,可在循环中使用break命令。执行break时,会跳出一层的循环,如果想跳出多层循环,可在break命令之后加上层数n(n一定要大于或等于1)。
while循环的语法:
while 条件测试 do 命令区域 done
作者:AlbertWen
添加时间:2017-11-19 18:21:16
修改时间:2025-07-13 23:49:27
分类:14.Golang/Ruby
编辑
Golang 内建的 close 方法可以关闭 channel,如果往已经关闭的 channel 发送数据,则会报错:panic: close of closed channel.
看如下代码,在一段时间内,生产者可以不断往 channel 写入数据,消费者进行处理,一段时间后 channel 关闭了,这个时候如果还有数据往 channel 发送,程序就会报错。
package main import ( "fmt" "sync" "time" ) func main() { jobs := make(chan int) var wg sync.WaitGroup go func() { time.Sleep(time.Second * 3) close(jobs) }() go func() { for i := 0; ; i++ { jobs <- i fmt.Println("produce:", i) } }() wg.Add(1) go func() { defer wg.Done() for i := range jobs { fmt.Println("consume:", i) } }() wg.Wait() }
for的语法结构如下:
for 变量 in 串行 do 命令区域 done
case的语法结构:
case 待测项 in 样式串1] 命令区域1 ;; 样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac
每当按退格键(BackSpace)删除输入的字符,如果没有字符还按键,电脑就会发出嘟嘟声。。。
在Bash中,这种可以影响程序流程的式子,称为条件判断式。判断式的操作数分成“单元”及“二元”两种。如“-f 文件”可测试文件是否存在,运算符 -f 后接一个操作数“文件”,这种判断式称为“单元”;
条件测试的写法,有以下10种:
1.执行某个命令的结果
2.传回某个命令执行结果的相反值
3.使用复合命令:((算术))
4.使用Bash关键字‘[[’、‘]]’组成的式子:[[ 判断式 ]]
5.使用内置命令:test 判断式
6.使用内置命令:[ ]
7.使用 -a、-o 进行逻辑组合
8.命令1 && 命令2
9.命令1 || 命令2
10.&& 和 || 合用
在Bash Shell中,流程控制命令有2大类:“条件”、“循环”。属于“条件”的有:if、case;属于“循环”的有:for、while、until;命令 select 既属于“条件”,也属于“循环”。不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向。