go语言第一章(变量,判断,循环)
首先没有编译器的可以通过这个网址进行敲代码:Lightly
Hello World
不论学习什么语言,我们首先的第一个程序都是写一个Hello, World!
- 项目结构
- 程序代码
package main import "fmt" func main() { fmt.Println("Hello, World!") }
- 运行结果
- 代码的详细解释
这是一个简单的Go程序,它输出一条消息 “Hello, World!”。
让我们逐行解释这个代码:
package main
第一行定义了包名为 “main”。在Go语言中,每个文件都必须属于某个包,而包名 “main” 用于指示这是一个可执行程序的入口文件。
import "fmt"
第二行导入了标准库包 “fmt”。“fmt” 是一个格式化输入输出的包,其中包含了打印和扫描函数等操作。
func main() { fmt.Println("Hello, World!") }
接下来定义了一个名为 “main” 的函数。这个函数是程序的入口点,当程序启动时,会自动执行这个函数。在函数体内,调用了 “fmt” 包中的 “Println” 函数,并传递了一个字符串常量 “Hello, World!” 作为参数。“Println” 函数会将其输出到标准输出流中。
因此,当运行这个程序时,控制台将会输出 “Hello, World!” 这条信息。
变量
变量声明
在Go语言中,变量可以通过以下方式进行声明:
var variable_name data_type // 声明一个变量,指定其名称和数据类型 var x int // 声明一个整型变量x
如果需要在声明变量的同时赋值,则可以使用以下简便方法:
variable_name := value // 定义并初始化一个新变量,Go编译器会自动推断变量的类型 y := 3.14 // 定义一个浮点型变量y,并赋值为3.14
注意:在Go语言中,所有声明的变量都必须使用或者在函数体外声明为全局变量。否则会在编译时产生错误。
变量赋值
变量可以在声明后进行赋值。赋值可以通过以下方式进行:
variable_name = value // 将value赋给variable_name x = 10 // 将变量x的值设置为10
可以在单行上同时声明和初始化多个变量,使用逗号隔开:
var x, y, z int = 1, 2, 3 // 声明三个整型变量并赋值为1、2和3
也可以使用简短变量声明来定义和初始化一些局部变量:
x := 10 // 定义一个整型变量x并赋值为10
多重赋值
Go语言允许在一行上对多个变量进行赋值。这称为“多重赋值”。
a, b = b, a // 交换变量a和b的值
匿名变量
在Go语言中,可以使用下划线 _ 来表示匿名变量。匿名变量不会占用内存空间,并且不能被使用。它通常用于忽略某些返回值。
_, err := fmt.Println("Hello, World!")
在上面的例子中,我们使用匿名变量来忽略打印函数 fmt.Println 的返回值。
希望这个变量相关的教程对您有所帮助!
判断
在Go语言中,可以使用if语句、switch语句和select语句来实现条件判断。下面是这些语句的详细说明:
if语句
if condition { // 执行某些操作 }
其中 “condition” 是一个可以求值为true或false的表达式。如果 “condition” 的值为true,则执行if语句块中的代码;否则忽略if语句块中的代码并继续执行后面的代码。
if语句还可以包含一个可选的else子句,在 “condition” 为false时执行另一组代码。例如:
if condition { // 执行某些操作 } else { // 执行其他操作 }
也可以在if语句块中使用else if子句来检查多个条件。例如:
if condition1 { // 执行一些操作 } else if condition2 { // 执行其他操作 } else { // 执行其他操作 }
switch语句
switch语句用于根据不同的情况选择不同的操作。其基本语法如下:
switch variable { case value1: // 执行一些操作 case value2: // 执行其他操作 default: // 执行默认操作 }
其中 “variable” 是要测试的变量,它的值会与每个 “case” 值进行比较,如果测试变量的值与某个 “case” 值相等,则执行该 “case” 块中的代码。如果所有 “case” 块都未匹配成功,则执行 “default” 块中的代码。
练习题
练习1
编写一个程序,判断一个整数是否为奇数或偶数。如果是偶数,则输出 “Even”;如果是奇数,则输出 “Odd”。
package main import "fmt" func main() { var num int fmt.Print("请输入一个整数:") fmt.Scan(&num) if num % 2 == 0 { fmt.Println(num, "是偶数") } else { fmt.Println(num, "是奇数") } }
- 代码详细解释:
package main - 声明了这个文件属于主包,也就是它可以被编译成可执行文件。
import “fmt” - 导入了 Go 标准库中的“fmt”包,以便在程序中使用 fmt 包提供的打印函数和扫描函数。
func main() { - 定义了一个名为“main”的函数,它是程序的入口点。
var num int - 声明了一个名为“num”的整型变量。
fmt.Print(“请输入一个整数:”) - 打印了提示信息,要求用户输入一个整数。
fmt.Scan(&num) - 从标准输入中读取一个整数,并将其存储在变量“num”中。& 符号用于获取变量的地址,以便 Scan 函数可以将输入存储到此处。
if num % 2 == 0 { - 对输入的数字进行取模运算并检查结果是否等于零(即是否为偶数)。
fmt.Println(num, “是偶数”) - 如果数字是偶数,则使用 Println 函数输出数字和一条消息表示它是偶数。
} else { - 如果数字不是偶数,则跳转到 else 代码块。
fmt.Println(num, “是奇数”) - 使用 Println 函数输出数字和一条消息表示它是奇数。
} - if-else 代码块的结尾。
如果用户输入为偶数,程序将输出“数字是偶数”。例如,如果用户输入“4”,则程序会打印“4 是偶数”。如果用户输入为奇数,则程序将输出“数字是奇数”。例如,如果用户输入“5”,则程序会打印“5 是奇数”。
练习2
编写一个程序,获取用户输入的字符,并判断它是大写字母、小写字母还是数字。
package main import ( "fmt" "unicode" ) func main() { var ch rune fmt.Print("请输入一个字符:") fmt.Scanf("%c", &ch) if unicode.IsLetter(ch) { if unicode.IsUpper(ch) { fmt.Println(ch, "是大写字母") } else { fmt.Println(ch, "是小写字母") } } else if unicode.IsDigit(ch) { fmt.Println(ch, "是数字") } else { fmt.Println(ch, "不是字母也不是数字") } }
练习3
编写一个程序,根据用户输入的月份输出该季节。
package main import "fmt" func main() { var month int fmt.Print("请输入一个月份(1-12):") fmt.Scan(&month) switch month { case 1, 2, 12: fmt.Println("冬季") case 3, 4, 5: fmt.Println("春季") case 6, 7, 8: fmt.Println("夏季") case 9, 10, 11: fmt.Println("秋季") default: fmt.Println("输入有误") } }
- 代码详细解释
package main - 声明了这个文件属于主包,也就是它可以被编译成可执行文件。
import “fmt” 和 import “unicode” - 导入了 Go 标准库中的“fmt”和“unicode”包,以便在程序中使用 fmt 包提供的打印函数和 unicode 包提供的字符分类函数。
func main() { - 定义了一个名为“main”的函数,它是程序的入口点。
var ch rune - 声明了一个名为“ch”的 rune 类型变量。
fmt.Print(“请输入一个字符:”) - 打印了提示信息,要求用户输入一个字符。
fmt.Scanf(“%c”, &ch) - 从标准输入中读取一个字符,并将其存储到变量“ch”中。%c 是一个格式化字符串,用于读取单个字符。& 符号用于获取变量的地址,以便 Scan 函数可以将输入存储到此处。
if unicode.IsLetter(ch) { - 使用 IsLetter 函数检查输入的字符是否是字母。
if unicode.IsUpper(ch) { - 如果输入的字符是大写字母,则使用 IsUpper 函数检查它是否是大写字母。
fmt.Println(ch, “是大写字母”) - 如果输入的字符是大写字母,则使用 Println 函数输出该字符和一条消息表示它是大写字母。
} else { - 如果输入的字符不是大写字母,则跳转到 else 代码块。
fmt.Println(ch, “是小写字母”) - 如果输入的字符不是大写字母,则使用 Println 函数输出该字符和一条消息表示它是小写字母。
} else if unicode.IsDigit(ch) { - 如果输入的字符不是字母,则使用 else if 语句来检查它是否是数字。
fmt.Println(ch, “是数字”) - 如果输入的字符是数字,则使用 Println 函数输出该字符和一条消息表示它是数字。
} else { - 如果输入的字符既不是字母也不是数字,则跳转到 else 代码块。
fmt.Println(ch, “不是字母也不是数字”) - 使用 Println 函数输出该字符和一条消息表示它既不是字母也不是数字。
} - if-else 代码块的结尾。
如果用户输入一个字母,则程序将判断其是否为大写字母或小写字母,并输出相应的消息。例如,如果用户输入“A”,则程序会打印“65 是大写字母”。如果用户输入一个数字,则程序会输出相应的消息,例如“5 是数字”。如果用户输入的既不是字母也不是数字,则程序会输出“# 不是字母也不是数字”(假设用户输入的是 # 字符)。
练习4
编写一个程序,根据用户输入的成绩输出相应的等级。
package main import ( "fmt" ) func main() { var score float64 fmt.Print("请输入你的成绩:") fmt.Scanln(&score) var grade string if score >= 90 { grade = "A" } else if score >= 80 { grade = "B" } else if score >= 70 { grade = "C" } else if score >= 60 { grade = "D" } else { grade = "E" } fmt.Printf("你的成绩为%.2f,等级为%s\n", score, grade) }
- 代码详细解释:
package main - 声明了这个文件属于主包,也就是它可以被编译成可执行文件。
import “fmt” - 导入了 Go 标准库中的“fmt”包,以便在程序中使用 fmt 包提供的打印函数和扫描函数。
func main() { - 定义了一个名为“main”的函数,它是程序的入口点。
var score float64 - 声明了一个名为“score”的浮点型变量。
fmt.Print(“请输入你的成绩:”) - 打印了提示信息,要求用户输入一个成绩。
fmt.Scanln(&score) - 从标准输入中读取一个浮点数,并将其存储在变量“score”中。& 符号用于获取变量的地址,以便 Scan 函数可以将输入存储到此处。
var grade string - 声明了一个名为“grade”的字符串变量。
if score >= 90 { - 使用 if 语句检查输入的成绩是否大于或等于 90 分。
grade = “A” - 如果输入的成绩大于或等于 90 分,则将变量“grade”设置为“A”。
} else if score >= 80 { - 如果输入的成绩小于 90 分但大于或等于 80 分,则跳转到 else if 代码块。
grade = “B” - 如果输入的成绩小于 90 分但大于或等于 80 分,则将变量“grade”设置为“B”。
} else if score >= 70 { - 如果输入的成绩小于 80 分但大于或等于 70 分,则跳转到 else if 代码块。
grade = “C” - 如果输入的成绩小于 80 分但大于或等于 70 分,则将变量“grade”设置为“C”。
} else if score >= 60 { - 如果输入的成绩小于 70 分但大于或等于 60 分,则跳转到 else if 代码块。
grade = “D” - 如果输入的成绩小于 70 分但大于或等于 60 分,则将变量“grade”设置为“D”。
} else { - 如果输入的成绩小于 60 分,则跳转到 else 代码块。
grade = “E” - 如果输入的成绩小于 60 分,则将变量“grade”设置为“E”。
} - if-else 代码块的结尾。
fmt.Printf(“你的成绩为%.2f,等级为%s\n”, score, grade) - 使用 Printf 函数输出包含输入成绩和对应等级的一条消息。其中,%f 是一个格式化字符串,用于输出浮点数;%.2f 表示保留两位小数;%s 是一个格式化字符串,用于输出字符串。
如果用户输入一个分数,则程序将判断其成绩等级,并使用 Printf 函数输出包含输入成绩和对应等级的一条消息。例如,如果用户输入“85.5”,则程序会打印“你的成绩为85.50,等级为B”。