1.if - else if - else的使用

package main

import "fmt"

func main() {
// 1.简单使用
var a=10
if a==10 { // 这个位置不能回车,不能换行
fmt.Println(a)
} //2 if - else
var b =16
if b==20 {
fmt.Println("20")
}else{
fmt.Println("15")
} //3 if - else if - else
var c =20
if c==20 {
fmt.Println("20")
}else if c==15 {
fmt.Println("15")
}else {
fmt.Println("10")
}
}

2.for循环

package main

func main() {
// 基本语法
for 初始化; 条件; 自增/自减{ } }

2.1简单使用

	for a:=0; a<10; a++  {
fmt.Println(a)
}

2.2省略初始化

	a :=0
for ;a<10 ; a++ {
fmt.Println(a)
}

2.3省略初始化和自增自减

	a :=0
for ;a<10 ; {
fmt.Println(a)
a++
}

2.4.省略初始化和自增自减(进阶版)

注意:两个分号省略了,(类似while循环)

	a :=0
for a<10 {
fmt.Println(a)
a++
}

2.5.死循环

	// 死循环一
for true{
fmt.Println("ak47")
} // 死循环二(三部分都省略了)
for {
fmt.Println("ak47")
break
}

3.switch语句

3.1基本使用

package main

import "fmt"

func main() {

	// 1.基本使用
var a = 10
switch a {
case 1: //相当于if a==1
fmt.Println("1")
case 5:
fmt.Println("5")
case 10:
fmt.Println("10")
}
}

3.2default

	var b = 18
switch b {
case 1:
fmt.Println("1")
case 5:
fmt.Println("5")
case 10:
fmt.Println("10")
default: //相当于else
fmt.Println("你是蔡徐坤")
}

3.3多表达式判断

(只要符合期中一个条件就成立)

	var c = 18
switch c {
case 1, 2, 5:
fmt.Println("1")
case 6, 7:
fmt.Println("5")
case 10, 15, 18:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}

3.4无表达式

	var d = 30
switch {
case d == 20:
fmt.Println("1")
case d == 30:
fmt.Println("5")
case d == 40:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}

3.5无表达式

and(和)的条件 && 或(or)的条件 ||

	var e = 20
var d = 30
switch {
case d == 30 && e==20: //同时成立
fmt.Println("1")
case d == 30:
fmt.Println("5")
case d == 40:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}

3.6.fallthrough

无条件执行下一个case(穿透)

	var f = 2
switch {
case f == 1:
fmt.Println(1)
case f == 2:
fmt.Println(2)
fallthrough //一旦碰到 fallthrough会无条件执行下面的语句
case f == 6:
fmt.Println(250)
fallthrough ////只要代码读到fallthrough与他紧挨着的语句,无论是否满足条件,他都会执行里面的内容
case f == 3:
fmt.Println(666)
}

4.数组

4.1定义数组

package main
import "fmt"
func main() {
// 同一类元素的集合, 不允许混合不同元素
// 定义数组(定义了一个大小为4的int类型数组)
var a [4]int // 四个为0的数组
fmt.Println(a) // int默认值为0
}

4.2使用数组

(从索引0开始)

package main
import "fmt"
func main() {
var a [4]int
fmt.Println(a)
a[0] = 10
fmt.Println(a[0])
fmt.Println(a)
}

4.3定义并赋初始值(三种方式)

package main
import "fmt"
func main() {
// 1.
//var b [4]int = [4]int{1,2,3,4}
// 2.
//var b = [4]int{1,2,3,4}
// 3.
b := [4]int{1,2,3,4}
fmt.Println(b)
}

4.4定义并赋初值(其他方式)

package main
import "fmt"
func main() {
//var c [4]int = [4]int{1,2} // 只给前两个赋值
//var c [4]int = [4]int{1:2} // 只给第二个赋值,前面是索引,后面是值
//var c [4]int = [4]int{1:2,2:3} // 只给第二,三个个赋值
var c [4]int = [4]int{2:3,1:2} // 只给第二,三个个赋值
c[3] = 100
fmt.Println(c)
}

4.5数组大小固定(大小一旦定义,不能改变)

package main
import "fmt"
func main() {
//var c [4]int = [5]int{1,2} // 错的
//var c [4]int = [4]int{1,2,3,4,5} // 错的 //var c [4]int = [4]int{1,2,3,4}
//a[4] = 10 //错的,最大索引为3
//fmt.Println(a[4]) //错的
}

4.6.数组的大小是类型的一部分

package main
import "fmt"
func main() {
// 下面两个不是同一种类型(不能比较和加减)
var a [3] int
var b [4] int
}

4.7.数组的值类型(引用类型)

// 说法不准确 (因为py中一切皆对象,不可变数据类型也是对象,对象就是地址)

// py中的不可变类型(值类型)当做参数传递到函数中,如果在函数中改变该值,原值不会变

// py中的可变类型(引用类型:地址)当做参数传递到函数中,如果在函数中改变该值,原值会改变

// go中值类型,当做参数传递时,copy一份过去,值被copy是相当于复制了一份过去

package main
import "fmt"
func main() {
var d = [4]int{1,2,3,4}
test(d) // 当做参数传递过去
fmt.Println(d) // 原值没有改变
} func test(d [4]int) {
d[0] = 100 // 修改值
fmt.Println(d) // 传过来的数组改变了,但原值不变
}

4.8数组的长度(len)

package main
import "fmt"
func main() {
var e = [4]int{1,2,3,4}
fmt.Println(len(e))
}

4.9数组的循环

package main
import "fmt"
func main() {
// 方法一:
var a = [4]int{1,2,3,4}
for i:=0 ;i<len(a) ;i++ {
fmt.Println(a[i])
} //方式二:(range关键字,它不是内置函数)把数组放在range关键字后
var b = [4]int{1,55,3,66}
for z:=range b{
//fmt.Println(z)
fmt.Println(b[z]) //这不是正统的用法
} // 当用一个变量来接收时,这个变量就是索引
// 当用两个变量来接收时,这两个变量就是索引和值
for k,v:=range a {
fmt.Println(k,v)
} // 当你不想取索引的时候也可以用下划线代替
for _,v:=range a {
fmt.Println(v)
}
}

4.10多维数组

package main
import "fmt"
func main() {
var a [4][3]int
fmt.Println(a)
a[1][1] =100 // 修改值
fmt.Println(a)
}

4.11多维数组定义并赋初值

package main
import "fmt"
func main() {
var a = [4][3]int{{1,1,1},{2,2,2},{3,3,3},{4,4,4}}
fmt.Println(a) // 把数组第二个位置初值改为[6,6,6]
var b = [4][3]int{1:{6,6,6}}
fmt.Println(b) var c = [4][3]string{1:{"6","6","6"}}
fmt.Println(c)
// 字符串的空值是空字符串 ""
// int类型空值是 0
// 数组的空值,取决于类型的空值
var d [4][3]string
fmt.Println(d)
}

GO - if判断,for循环,switch语句,数组的使用的更多相关文章

  1. Go-函数高级使用-条件分支-包管理-for循环-switch语句-数组及切片-与或非逻辑符

    目录 科普 python 注释 # 函数高级 if else if else 包管理 下载第三方包 比较热门的框架 for 循环 for 循环的几种写法 switch 语句 数组及数组切片 数组迭代 ...

  2. 简易计算器实现:while循环+switch语句

    个人练习: 写一个计算器,要求实现加减乘除功能,并且能循环接收新的数据,通过用户交互实现(即Scanner对象) 用到了 while循环 switch语句,实现了数据的循环输入并计算!!!!妙啊!!! ...

  3. 包、mode模式、if-else语句、switch语句

    目录 包 mode模式 if-else语句 循环 switch语句 包 //1 在同一个包下(文件夹下),包名必须一致 //2 以后,包名就是文件夹的名字 //3 同一个包下,同名函数只能有一个(in ...

  4. 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型

    1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...

  5. 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句

    本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...

  6. switch语句和for循环

    switch语句: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case后面的值可以是常量数值,如:1.日:也可以是一个常量表达式,如:2+2:但 不能是变量或带有变量的表达式 ...

  7. 我的PHP之旅--PHP的判断、循环语句

    if语句 <?php if ($a = "some string") { // 就算括号中不是bool值,php也会自动转换为bool值 上一节写过各个类型转换bool值 / ...

  8. 永久性for循环配合switch语句可以实现菜单功能

    永久性for循环配合switch语句可以实现菜单功能总结:加入想要无条件地跳转到某条语句执行,用goto语句: 加入想要对某种条件进行判断,为真或为假分别执行不同的语句,用if语句 加入想要检测的条件 ...

  9. 初学Java scirpt(判断、循环语句)

    在编写代码时,我们经常需要为不同的判断结果来执行不同的动作以及需要反复执行同一段代码,这时我们就需要使用判断和循环语句来实现. 1.判断语句(if) 判断语句经常用的有(if......else).( ...

随机推荐

  1. c/c++[001]:start

    作为一个学校课程跳过c语言的萌新,这次重新学习c/c++从源头上明白这两种不同的输入输出还是很有必要 scanf()是C语言中的一个输入函数.与printf函数一样,都被声明在头文件stdio.h里, ...

  2. rework-发出你的心声

    生意人虚张声势的时候会给人什么感觉?都是些僵硬的措辞.官方的腔调.虚伪的友善.法律术语等.你一定看过这些玩意儿,就好像是机器人写出来的东西,这些公司在向你发话,而不是和你对话. 这种专业主义面具让人觉 ...

  3. 吴裕雄--天生自然python学习笔记:python 用firebase实现英文电子词典

    Firebase 版电子词典 学英语是许多 人一辈子的麻烦 . 所以本例中,我们开发一个英汉词典,用户执 行程序后,单击“翻译”按钮即可显示该单词的中文翻译 . 英汉词典标准版 因为这个案例的数据必须 ...

  4. 吴裕雄--天生自然 JAVA开发学习:Applet 基础

    import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet { public void ...

  5. aclocal-1.13: command not found

    原因: 将编译好的工程拷贝到系统版本不一样的系统中,再进行编译会出现此类问题. 解决方法: yum install automake autoconf yum install libtool auto ...

  6. STM32学习中出现的错误

    1.添加了多个文件后编译发现出现了无效的重复声明: 原因:文件(头文件)调用的时候重复调用, 解决办法:每个头文件写的时候包含以下代码: #ifndef   __STM32F10X_H   //头文件 ...

  7. Fiddler发送get post测试 笔记

    0 环境 系统环境:win7 1 操作 1 post 类似 2 get

  8. Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.FAILED

    1.service network stop 2./etc/sysconfig/network-scripts目录下,删除想要删除的网卡配置,我要删除eth1,所以rm -rf ifcfg-eth1, ...

  9. 虚拟机apache启动

    /usr/local/apache2/bin/apachectl restart 重启 当启动也行 尝试过进入目录运行,比较奇怪,www目录竟然不一致,直接使用 server httpd start ...

  10. Base64基础知识

    转载自百度百科:http://baike.baidu.com/link?url=tI0FbG-ALTTNhRsaQHWXqdVWQDCq4bwd5Xsc0m46M8DKZ5jJyVWnr3IvTprh ...