Golang------基础:if条件、switch、for循环、goto、格式化字符串、运算符

一、条件语句

1.1 格式

if 条件 {
    
    
成立,则执行此行代码
} else {
    
    
	不成立,则执行此行代码
}
if 条件 {
    
    
成立,则执行此行代码
} 

1.1.1 例

package main

import "fmt"

func main() {
    
    

	if 1 < 2 {
    
    							//if后面可以跟条件(不等式等)、变量、布尔
		fmt.Println("666")
	} else {
    
    
		fmt.Println("999")
	}


	if 1 > 2 {
    
    
		fmt.Println("666")
	} else {
    
    
		fmt.Println("999")
	}
	}
---------------------------------------------------------------------------------------------
666
999

练习题1:用户输入姓名,判断是否正确

package main

import "fmt"

func main() {
    
    
var name string
fmt.Print("请输入姓名: ")
fmt.ScanLn(&name)
if name == "alex" {
    
    				//多条件判断使用:&&(且)、||(或)
fmt . PrintLn("用户名输入正确")
} eLse {
    
    
fmt . PrintLn("用户名输入错误")
}
}

//多条件判断使用:&&(且)、||(或)

1.2 多重判断

if 条件A {
    
    
...
} else if 条件B {
    
    
...
} else if 条件C {
    
    
...
} else if ... {
    
    
...
}
package main

import "fmt"

func main() {
    
    

	var score int
	fmt.Print("请输入你的分数:")
	fmt.Scanln(&score)

	if score >= 90 {
    
    
		fmt.Println("优秀")
	}else if score < 90 && score >= 80 {
    
    
		fmt.Println("良好")
	} else  {
    
    
		fmt.Println("差劲")
	}
	}
---------------------------------------------------------------------------------------------
请输入你的分数:95
优秀
请输入你的分数:83
良好
请输入你的分数:56
差劲

1.3 嵌套

package main

import "fmt"

func main() {
    
    
fmt.Println("欢迎致电18086, 1.话费相关; 2.业务办理; 3.人工服务。")
var number int
fmt.ScanLn(&number)
if number == 1 {
    
    
fmt.Println("话费服务,1.交话费; 2.查询。")
	var n1 int
	fmt.ScanLn(&n1) 
	if n1==1 {
    
    						//在if条件语句中再嵌套一个if条件语句
	fmt.Println("请输入缴纳花费金额:")
	} else if n1==2 {
    
    
	fmt.PrintLn("正在查询,请稍等")
	} else {
    
    
	fmt. Println("输入错误")
	} 
} eLse if number == 2 {
    
    
...
} eLse if number == 3 {
    
    
...
} eLse {
    
    
fmt. Println("输入错误)
}

在这里插入图片描述

二、Switch

package main

import "fmt"

func main() {
    
    
    var age int
    fmt.Println("请输入年龄:")
    fmt.Scan(&age)
	switch age {
    
    
	case 17:
		fmt.Println("等于1")
	case 18:
		fmt.Println("等于2")
	case 19:
		fmt.Println("等于3")
	default:
		fmt.Println("都不满足")

	}
	}
----------------------------------------------------------------------------------------
请输入年龄:
18
等于2

三、for循环

time.Sleep(time.Second * 1)   		//输出停顿一秒
package main

import "fmt"

func main() {
    
    
  fmt.Println("开始")
	number := 1
 	for number < 5 {
    
    
 		fmt.Println("hhhhhhhhh")
 		number = number + 1
	}
	fmt.Println("4")
	}
----------------------------------------------------------------------------------------
开始
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
4
package main

import "fmt"

func main() {
    
    
  fmt.Println("开始")
	for i:=1;i<5; {
    
    					//变量&条件
		fmt.Println("hhhhhhhhh")
		i = i + 1
	}
	fmt.Println("4")
	}
----------------------------------------------------------------------------------------
开始
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
4
package main

import "fmt"

func main() {
    
    
  fmt.Println("开始")
	for i:=1;i<5;i=i+1{
    
    				//i++//变量&条件&变量赋值
	
		fmt.Println("hhhhhhhhh")

	}
	fmt.Println("4")
	}
----------------------------------------------------------------------------------------
开始
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
hhhhhhhhh
4

3.1 continue

continue:在for循环中使用,当遇到continue时,会停止当前循环,开始下一次循环

package main

import (
	"fmt"
	"time"
)

func main() {
    
    
  	for {
    
    
  		fmt.Println("八百标兵奔北坡")
  		continue					//使用continue,则后面的不再执行,然后进入下一个循环
  		fmt.Println("炮兵并排北边跑")	//不执行
		time.Sleep(time.Second * 1)	//不执行
	}
	}
---------------------------------------------------------------------------------
八百标兵奔北坡
八百标兵奔北坡
八百标兵奔北坡
八百标兵奔北坡
八百标兵奔北坡
八百标兵奔北坡
...死循环
#使用循环输出1 2 3 4 5 6 8 91-97以外的整数)
package main

import "fmt"

func main() {
    
    
  	for i:=1;i<10;i++{
    
    
  		if i==7 {
    
    
  			continue			#在i为7时跳出循环,不输出7
		}
  		fmt.Println(i)
	}
	}
---------------------------------------------------------------------------------
1
2
3
4
5
6
8
9

3.2 break

break:在for循环中使用,遇到break时会跳出循环

package main

import (
	"fmt"
	"time"
)

func main() {
    
    
	for {
    
    
		fmt.Println("八百标兵奔北坡")
		break				//直接跳出循环,此次循环下面的内容不再执行,之后的循环也不再执行
		fmt.Println("炮兵并排北边跑")
		time.Sleep(time.Second * 1)
	}
	}
---------------------------------------------------------------------------------
八百标兵奔北坡

3.3 打标签

package main

import "fmt"

func main() {
    
    
	for i:=1;i<3;i++ {
    
    
		for j:=1;j<5;j++ {
    
    
		if j==3 {
    
    
			continue
		}
		fmt.Println(i,j)
		}
	}
	}
---------------------------------------------------------------------------------
1 1
1 2
1 4
2 1
2 2
2 4
=================================================================================
package main

import "fmt"

func main() {
    
    
	f1:for i:=1;i<3;i++ {
    
    			//给这个for循环打上f1的标签
		for j:=1;j<5;j++ {
    
    
		if j==3 {
    
    
			continue f1				//中止fi当前循环,进入下一个循环
		}
		fmt.Println(i,j)
		}
	}
	}
---------------------------------------------------------------------------------
1 1
1 2
2 1
2 2
package main

import "fmt"

func main() {
    
    
	for i:=1;i<3;i++ {
    
    
		for j:=1;j<5;j++ {
    
    
		if j==3 {
    
    
			break
		}
		fmt.Println(i,j)
		}
	}
---------------------------------------------------------------------------------
1 1
1 2
2 1
2 2
=================================================================================
package main

import "fmt"

func main() {
    
    
	f1:for i:=1;i<3;i++ {
    
    
		for j:=1;j<5;j++ {
    
    
		if j==3 {
    
    
			break f1		//直接跳出标签f1的循环,后面的也不再循环
		}
		fmt.Println(i,j)
		}
	}
	}
---------------------------------------------------------------------------------
1 1
1 2

四、goto

跳跃到指定的行,然后向下执行代码

package main

import "fmt"

func main() {
    
    
	var name string
	fmt.Print("请输入姓名:")
	fmt.Scanln(&name)
	if name == "x" {
    
    
		goto SVIP
	} else if name == "y" {
    
    
		goto VIP
	}
	fmt.Println("需要预约")
VIP:
	fmt.Println("需要等桌")
SVIP:
	fmt.Println("进入包厢")
	}
---------------------------------------------------------------------------------
请输入姓名:x
进入包厢
---------------------------------------------------------------------------------
请输入姓名:y
需要预约
需要等桌
---------------------------------------------------------------------------------
请输入姓名:a
需要预约
需要等桌
进入包厢

五、字符串格式化

将数据格式化成为特定格式的字符串时,可以使用字符串格式化。

package main

import "fmt"

func main() {
    
    
	var name string
	var age,score int
	fmt.Println("请输入姓名:")
	fmt.Scanln(&name)
	fmt.Println("请输入年龄:")
	fmt.Scanln(&age)
	fmt.Println("请输入分数:")
	fmt.Scanln(&score)

	result:=fmt.Sprintf("我叫%s,我今年%d岁,我考了%d分",name,age,score )
	fmt.Println(result )
	}
---------------------------------------------------------------------------------
请输入姓名:
xyw
请输入年龄:
20
请输入分数:
98
我叫xyw,我今年20岁,我考了98

六、运算符

6.1 算术运算符

运算符 描述 实例
+ 相加 A+B输出结果
- 相减 A-B输出结果
* 相乘 A*B输出结果
/ 相除 B/A输出结果
% 取余 B%A输出结果
++ 自增 A++输出结果
自减 A–输出结果

6.2 关系运算符

运算符 描述
== A等于B
!= A不等于B
> A大于B
< A小于B
>= A大于等于B
<= A小于等于B

6.3 逻辑运算符

运算符 描述
&& and
|| OR
! 取反NOT

6.4 位运算符

按位运算指的是二进制之间的运算

运算符 描述 实例
& 按位与运算,位置都为1,才得1,不同得0 5&99=1
|| 按位或预算,位置只要有1就得1 5|99=103
^ 按位异或运算,只要位置不同时得1 5^99=102
<< 按位向左移动,右例为向左移动两位 5<<2=20
>> 按位向右移动,右例为向左移动一位 5>>1=2
&^ 比较清除,以前面的值为基准答案,让前面的和后面的值的二进制位进行比较,都为1的时候将位置上的1改为0
5  --> 0000101
99 --> 1100011
与:    0000001
5  --> 0000101
99 --> 1100011
或:    1100111
5  --->  0000101
99 --->  1100011
异或:    1100110
5 << 2
5  ------>  101
向左移动两位  10100 ------>20
5 >> 1
5  ------>   101
向右移动一位   10 ------>2	//最右边的那位会消除掉
5  ------>  0000101
99 ------>  1100011			//只有最后一位都为1
比较清除:    0000100			//将5的二进制基准上将最后一位改为0

6.5 赋值运算符

运算符 描述 实例
= 简单的赋值运算符,将一个表达式的值赋给一个左值 C=A+B将A+B表达式结果赋值给C
+= 相加后再赋值 C+=A等于C=C+A
-= 相减后再赋值 C-=A等于C=C-A
*= 相乘后再赋值 C*=A等于C=C*A
/= 相除后再赋值 C/=A等于C=C/A
%= 求余后再赋值 C%=A等于C=C%A
<<= 左移后赋值 C<<=2等天C=C<<2
>>= 右移后赋值 C>>=2等于C=C>>2
&= 按位与后赋值 C&=2等于C=C&2
^= 按位异或后赋值 C^=2等于C=C^2
|= 按位或后赋值 C|=2等于C=C|2

6.6 运算符的优先级

Precedence Operator
5 * , / , % , << , >> , & , &^
4 + , - , | , ^
3 == , != , < , <= , > , >=
2 &&
1 ||

猜你喜欢

转载自blog.csdn.net/IvyXYW/article/details/115055071