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,不同得05&99=1
||按位或预算,位置只要有1就得15|99=103
^按位异或运算,只要位置不同时得15^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 运算符的优先级

PrecedenceOperator
5* , / , % , << , >> , & , &^
4+ , - , | , ^
3== , != , < , <= , > , >=
2&&
1||
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值