go语言中只有for这个关键字来做循环 。当然如果goto不算的话。当然还有break用于跳出循环,还有continue用于直接开始下一次循环。
传统for循环
for 初始化; 判断; 修改控制变量{}
for i := 0; i<10; i++{
}
和C/C++一样
for (int i = 0; i < 10; i++)
{
}
模拟while
var i int = 0
for i < 10{
\\do something
i ++
}
模拟do while
//go
var i int = 0
var condition bool = true
for condition {
//do something
condition = i < 10
i++
}
或者
var condition bool = true
test = func(int c) (bool result){
result = c<10
return
}
for i := 0; condition; condition=test(i){
//do something
}
当然有更好的模拟方式,请留言给我,谢谢
死循环
//go
for{
\\do something
}
遍历元素
//go
var i = [3]int{ 0, 1, 2} //定义一个三个元素数组,并初始化
for _, item := range i{
}
var m = map[string]string{"name":"zhangsan", "age":"36"} //定义一个map
for key,value := range m{
}
因为go语言的range会反回两个值,对于数组来说是元素的下标和元素本身,第一个循环中的”_“是一个占位符,表示我们对这个返回值不感兴趣。对于map就是反会key和value了
相当于 C++的
//C++ std=c++11
int i[3] = {0, 1, 2};
for (auto item : i){
}
map<string, string> m;
m["name"] = "zhangsan";
m["age"] = "36";
for (auto item : m)
{
auto key = item.first;
auto value = item.second;
}