package main
import (
"fmt"
)
func main() {
/*
%表示格式化字符串输出
目前printf支持以下格式的输出,例如:
printf("%c",a);输出单个字符。
printf("%d",a);输出十进制整数。
printf("%f",a);输出十进制浮点数.
printf("%o",a);输出八进制数。
printf("%s",a);输出字符串。
printf("%u",a);输出无符号十进制数。
printf("%x",a);输出十六进制数。
*/
// for 循环
/* for i := 0; i <= 2; i++ {
fmt.Println(i)
}
var k int
for k < 3 {
time.Sleep(2 * time.Second) // 睡2秒,time.Second表示一秒
fmt.Println(k)
k++
}
// for 的无限循环
var j int
for {
time.Sleep(2 * time.Second) // 睡2秒,time.Second表示一秒
fmt.Println(j)
j++
}*/
// 计算1加到100
var sum int
for m := 1; m <= 100; m++ {
sum += m
}
fmt.Println(sum)
// 打印九九乘法表
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%d ", j, i, j*i)
}
fmt.Println()
}
// for循环还有一种用法,for range 主要是对字符串、数组、切片,map.channel
/*
for key,value := range {
}
*/
name := "imoov"
fmt.Println("===========打印索引+值================")
for index, value := range name {
//fmt.Println(index, value)
fmt.Printf("%d, %c\r\n", index, value)
}
fmt.Println("===========打印方式一================")
for _, value := range name {
//fmt.Println(index, value)
fmt.Printf("%c\r\n", value)
}
/*
字符串 字符串的索引(key) 字符串对应的索引的字符值的拷贝(value) 如果不写key,那么返回的是索引
数组 数组的索引 索引对应的值的拷贝 如果不写 key,那么返回的是索引
切片 切片的索引 索引对应的值的拷贝 如果不写key,那么返回的是索引
map map 的key value返回的是 key对应的值的拷贝 如果不写key,那么返回的是map的值
channel value 返回的是 channel接受的数据
*/
fmt.Println("============打印方式二===============")
for index := range name {
fmt.Printf("%c\r\n", name[index])
}
// 如果有中文
fmt.Println("============打印方式中文一===============")
name02 := "imoov你好世界"
for _, value := range name02 {
fmt.Printf("%c\r\n", value)
}
fmt.Println("============打印方式中文二===============")
name02Rune := []rune(name02)
for i := 0; i < len(name02Rune); i++ {
fmt.Printf("%c\r\n", name02Rune[i])
}
}
文章评论