控制台输入
// Scan scans text read from standard input, storing successive
// space-separated values into successive arguments. Newlines count
// as space. It returns the number of items successfully scanned.
// If that is less than the number of arguments, err will report why.
func Scan(a ...interface{}) (n int, err error) {
return Fscan(os.Stdin, a...)
}
//示例
var name string
fmt.Print("请输入名称:")
fmt.Scan(&name)
fmt.Println(name)
if
//在Go语言中,可以通过 if 关键字进行条件判断, "{" 必须与 if 放在同一行,否则编译报错
if true {
fmt.Println(1)
}else if true {
fmt.Println(2)
}else{
fmt.Println(3)
}
值类型的数据都可以进行 "== !=" 运算符,只有数值类型可以进行 "> < = "运算符。
for
//循环体不停地循环,直到条件表达式返回 false 时自动退出循环, "{" 必须与 for 放在同一行,否则编译报错
for 初始语句 ; 条件表达式 ; 变量迭代 {
循环体代码
}
for 循环可以通过 break、goto、return、panic 语句强制退出循环
//初始语句可以被忽略,但是初始化语句之后的 ";" 不能省略,i 的作用域也会发生改变,因为他在外部声明。
i := 0
for ; i <10;i++{
fmt.Println(i)
}
fmt.Println("====分割线====")
//一起来猜一猜结果
fmt.Println(i)
for循环的执行顺序
image.png
//初始化变量,条件表达式,都可以省略,";" 不可以省略,省略后执行顺序也发生了改变。
i := 0
for ; ;i++ {
if i >10{
break
}
fmt.Println(i)
}
//再来猜一猜结果
fmt.Println(i)
//无限循环
for{
fmt.Println("无限循环")
}
for range
//可以遍历 数组、切片、字符串、map、通道。
str := "aaaa"
for k,v := range str{
fmt.Println(k,string(v))
}
// "_" 表示占位符,忽略接受该变量
str := "aaaa"
for _,v := range str{
fmt.Println(string(v))
}
switch
// Go 语言改进了 switch 的语法设计,避免人为造成失误,case 区间为独立快,不会继续执行。
a := 9
switch a {
case 1:
fmt.Println("第一区间")
case 2:
fmt.Println("第二区间")
default:
fmt.Println("默认区间")
}
// 一个 case 多个条件条件
a := 2
switch a {
case 1,2:
fmt.Println("第一区间")
case 3,4:
fmt.Println("第二区间")
default:
fmt.Println("默认区间")
}
// case 可以像 if 一样添加表达式 "," 可以添加多个条件
a := 2
switch {
case a > 1 && a < 3:
fmt.Println("第一区间")
case a == 1,a <= 1:
fmt.Println("第二区间")
default:
fmt.Println("默认区间")
}
// fallthrough 关键字,来兼容 case 向下执行的特性
a := 2
switch a {
case 1,2:
fmt.Println("第一区间")
fallthrough
case 3,4:
fmt.Println("第二区间")
fallthrough
default:
fmt.Println("默认区间")
}
goto
// 使用 goto 可以跳出所有循环
for i := 0;i < 10;i++{
for ii := 0;ii < 10;ii++{
if ii==2 {
goto E
}
}
}
E:
fmt.Println("我跳出了循环")
//统一错误处理
err := "1"
if err != "err"{
goto AA
}
AA:
fmt.Println(err)
}
//只有进行调用才会执行
OuterLoop:
for i := 0;i < 2; i++{
for j := 0;j < 5;j++{
fmt.Println(j)
switch j {
case 2:
fmt.Println(i,j)
continue OuterLoop
}
}
}
}
课后作业(30分钟)
1.实现控制台登录功能。
2.正确账号密码为admin,admin。
3.每个账号密码错误次数大于3次后,每次登录进行账号锁定。
4.代码中禁止出现break。
5.代码量越少越好,并且能实现功能,本次进行代码排名(注释不算代码量)。
6.2019-7-10之前提交。
网友评论