他强任他强,清风拂山岗,他横由他横,明月照大江
倚天不出,谁与争锋,时间的车轮穷无声息已经挥别数载,原著作者金庸老先生早已经驾鹤西去,但其作品小说“飞雪连天射白鹿,笑书神侠倚碧鸳”不时回荡人间,虽然其中的大部分文学著作学生时代并没有认真研读过,但是根据小说翻拍的电视剧版本大多有所涉猎,这其中又以《倚天屠龙记》作为喜爱,翻拍的几个版本中自我认为吴启华版本最为传神,人物形象可谓是饰演的形神兼备,尤其是主人公张无忌从一个手无缚鸡之力的文弱少年,一举成为成为光明顶上力压六大派救明教于水火的顶流高手,可谓是热血沸腾。他强任他强,清风拂山岗,他横由他横,明月照大江,加入没有九阳真经基本功的前期铺垫,张无忌也不能在短短的几个时辰之内练就乾坤大挪移的武学本领,如果将编程比喻为一场武学的修炼,通俗的基本语法可谓之九阳真经,编程语言自身具有的特性可谓之乾坤大挪移。
if控制结构
目前主流的语言,不管是Java、c、c++亦或是go,条件判断语句始终是必须具备的一环,从某种意义上而言,如果一门编程语言没有条件判断结构,那么可以认为这门编程语言在很大程度上还没有达到成熟的程度。
1、if
if condition {
// do something
}
2、if-else
if condition {
// do something
} else {
// do something
}
3、if-else if-else
if condition1 {
// do something
} else if condition2 {
// do something else
} else {
// catch-all or default
}
4、example
//if
func f(x int) int {
if x < 0 {
return -x
}
return x
}
//if-else
func f1(a int) {
if a > 10 {
fmt.Printf("大于10")
} else {
fmt.Printf("小于10")
}
}
//if-else if-else
func f2(a int) {
if a < 0 {
fmt.Println("a 小于0")
} else if a >0 &&a < 10 {
fmt.Println("a大于0小于10")
} else {
fmt.Println("a大于10")
}
}
switch控制结构
大部分的主流语言,选择控制结构中都会有switch这样的表达形式,go语言中同样也存在这样的表达形式,不过与其他的编程语言有所差异的是,go语言针对switch的使用上更加的灵活,可以接受任意形式上的表达式,而不是只能限制于常量和整形变量之间。
1、表达形式
//表达方式一
switch var1 {
case val1:
...
case val2:
...
default:
...
}
//表达方式二(可以省略变量)
switch{
case val1:
...
case val2:
...
default:
...
}
//表达方式三
switch initialization {
case val1:
...
case val2:
...
default:
...
}
2、example
//表达方式一
func main() {
var num1 int = 100
switch num1 {
case 98, 99:
fmt.Println("It's equal to 98")
case 100:
fmt.Println("It's equal to 100")
default:
fmt.Println("It's not equal to 98 or 100")
}
//表达方式二
func main() {
var num1 int = 7
switch {
case num1 < 0:
fmt.Println("Number is negative")
case num1 > 0 && num1 < 10:
fmt.Println("Number is between 0 and 10")
default:
fmt.Println("Number is 10 or greater")
}
}
//表达方式三
switch result := calculate(); {
case result < 0:
...
case result > 0:
...
default:
// 0
}
for控制结构
go语言中的for关键字的功能相比于其他的更加的强大,与其他编程语言有所不同,go语言中的没有while, do …while这些关键字,如果想要循环只能借助for关键字或者range关键字。
1、表达结构
//表达形式一
for 初始化语句; 条件语句; 修饰语句 {
}
//表达形式二
for pos, char := range str {
...
}
//表达形式三
for 条件语句 {}
2、example
//表达方式一
func main() {
for i := 0; i < 5; i++ {
fmt.Printf("This is the %d iteration\n", i)
}
}
//表达方式二
func main() {
str2 := “fdfgfhgfghgh"
for index, rune := range str2 {
fmt.Printf("%-2d %d %U '%c' % X\n", index, rune, rune, rune, []byte(string(rune)))
}
}
//表达方式三
func main() {
var i int = 5
for i >= 0 {
i = i - 1
fmt.Printf("The variable i is now: %d\n", i)
}
}
Break和Continue
随着时间的推移,我们有的时候可能会碰到一些特殊的场景,比如当满足一定条件时,我们需要终止本次循环的程序,执行循环后的代码 ,或者跳过某次循环结构中程序的执行,每当面临这样的场景的时候,我们就需要使用到golang中的关键字break和continue。
1、break
//break关键字的作用是跳出循环并执行循环后的代码
func main() {
for i:=0; i<3; i++ {
for j:=0; j<10; j++ {
if j>5 {
break
}
print(j)
}
print(" ")
}
}
2、continue
//continue关键字的作用是跳过循环结构中的特定的某次循环
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
continue
}
print(i)
print(" ")
}
}
label和goto
标签label的关键字的作用是开始调到label指定的位置开始执行, goto 语句可以无条件地转移到过程中指定的行,goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能,但通常情况下不建议使用。
func main() {
i := 1
flag:
if i <= 5 {
fmt.Println(i)
i++
goto flag
}
}
小结
一门编程语言如果开始掌握了以上的知识点,那么从某种程度而言就像蹒跚学步的婴儿一样,已经开始处在奔跑的前夕,如果后续不断的加强相关的练习,那么不需要等待多长的时间便可以数量的掌握这门编程语言了,但革命尚未成功,同志们仍需要继续努力啊!