赞
踩
func main(){
var name string
var age int
var salary float64
var isPass bool
//1. 用fmt.Scanln()输入
fmt.Scanln(&name)
fmt.Scanln(&age)
fmt.Scanln(&salary)
fmt.Scanln(&isPass)
//2.第二种方式:fmt.Scanf()
fmt.Scanf("%s %d %f %t ",&name,&age,&salary,&isPass)
}//必须按照格式 + 顺序输入
//两种方法
商
为零,然后将余数
倒过来有符号:
从上到下,没有任何的判断和跳转
有选择的执行:1)单分支 2)双分支 3)多分支
1)单分支:
if 条件判断 {
执行代码块
}
2)双分支 :
一般语法:
if 条件判断 {
执行语句1
}else {
执行语句2
}//双分支值会执行一个执行语句
3)多分支 :
语句 :
if 条件判断 {
执1
}else if 条件判断 {
执2
}else if 条件判断 {
执3
}····else{
执n
}
在分支结构中有一个完整的分支结构
基本介绍:
switch 表达式 {
case 表1,表2:
语句块
case 表3,表4:
语句块
···
default :
语句块
}
1.case后的表达式可以是常量、变量(一切有返回值的都可)甚至 可以是运算
2.case后表达式的数据类型要是和switch后的表达式相同
3.golang中,case后可以接多个表达式,用逗号隔开
4.case后假如是常量或者字面值,则要求不能重复(变量可以重复)
5.default是非必要的
6.switch(case)后面的表示式可以表达范围就是类似于if-else中的条件判断
7.switch后也可以直接定义一个变量直接分号结束(不推荐)
8."fallthrough"穿透一层,直接执行,不匹配
基本介绍:
控制一段代码循环的执行
ex01:
for i:=1;i<=10;i++ {
fmt.Println("hello world!")
}//输出9行“hello world!”
基本语法:
for 循环变量的出示换1;循环条件2;循环变量的矢代3 {
循环操作4
}
4个要素:1/2/3/4
for循环的顺序说明:
1->2->4->3->2->3->4·······
直到2位false
for注意事项:
j := 1
for j<=10 {
fmt.Println("hello world !")
j++
}
//同ex01
字符遍历:
1>传统的方法:
str := "hello world !"
for i:= 0;i<len(str);i++{
fmt.Printf("%c \n",str[i])
}//传统方法是按一个字节来的假如有中文会出现乱码现象,字节遍历
2>for—range类型
str :="ok~ok"
for index ,val :=range str{
fmt.Printf("index = %d val = %c \n",index,val)
}//可以出现中文,字符遍历,有中文相同
while:
for {
if 循环条件 {
break
}
循环操作语句
循环操作矢代
}
do····while:
for {
循环语句
循环变量矢代
if 条件 {
break
}
}
break:终止,跳出for循环语句或者switch语句
lable2:
for j := 0;j <4 ;j++{
if j==2 {
break lable2
}
fmt.Println("j = ",j)
}//break后面接一个标签,跳出的就是相应的for循环
使用在方法或者函数中表示跳出所在方法或者函数
说明:
return普通函数->跳出函数,不在执行函数中的return后的代码;
如果出现在main中,则就表示瑞出程序,终止程序
func 函数名(形参列表)返回值列表 {
`执行语句`
return 返回值列表(不用加括号)
}
注意:
在main.go中调用utils.go文件
包的本质就是创造不同的文件夹,并存放程序文件
包的三大作用:
在函数本身的函数执行语句有本身的函数
基本数据类型和数组都是值传递,即值拷贝,在函数内修改,不会影响原来的值
如果希望函数内的变量能够修改函数外外的变量,可以传入变量的地址
golang与语言不支持函数重载
小案例:(2. )
func test (n *int) int{
*n = *n + 10
return *n
}
func main(){
var num = 20
fmt.Printf("num = %d",test(&num))//形参是指针,传的就是地址
//这样函数内的变量就改变了函数外的变量
}
func getSum (a int ,b int) int{
return a + b
}
func main(){
sum := getSum
res := sum(10 , 20)
fmt.Println(res)//等价于fmt.Println(getSum(10 , 20))
}
利用标识符“_”,可以忽略返回值
Go支持课变参数
//支持0~多个参数 func sum (arges... int)sum int{ } //支持1~多个参数 func sum(n int,arges... int) int { } //案例说明: func sum(n int,arges... int) int { sum := n for i := 0;i <len(arges);i++{ sum += arges[i] } //这是一个累加器 } func main(){ res := sum(10 , 20 ,30 ,50····)//会等于形参的和 }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。