栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

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

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

Golang------基础内容
  • 一、条件语句
    • 1.1 格式
      • 1.1.1 例
    • 1.2 多重判断
    • 1.3 嵌套
  • 二、Switch
  • 三、for循环
    • 3.1 continue
    • 3.2 break
    • 3.3 打标签
  • 四、goto
  • 五、字符串格式化
  • 六、运算符
    • 6.1 算术运算符
    • 6.2 关系运算符
    • 6.3 逻辑运算符
    • 6.4 位运算符
    • 6.5 赋值运算符
    • 6.6 运算符的优先级

一、条件语句 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 9 (1-9中7以外的整数)
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||
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号