Go:常量&运算符&流程控制

07-14 1257阅读

目录

Go:常量&运算符&流程控制
(图片来源网络,侵删)

一、常量

1.1 常量基本定义

1.2 常量组的定义

1.3 常量枚举

二、运算符

2.1 算数运算符

2.2 关系运算符

2.3 逻辑运算符

2.4 位运算符

2.5 赋值运算符

2.6 指针运算符

2.7 运算符优先级

三、流程控制

3.1 if-else 条件语句

3.2 switch-case语句

3.3 for 循环

3.3 break & continue

break

continue

break & continue 的区别

3.4 goto跳转

四、练习

4.1 九九乘法表

4.2 数字金字塔

4.3 斐波那契数列


        在学习编程的过程中,掌握常量、运算符和流程控制是理解和使用任何编程语言的基础。对于Go语言,这些概念同样至关重要。通过本笔记,我们将详细介绍Go语言中的常量、运算符以及流程控制的相关知识,帮助读者在实际编程中灵活运用这些基本概念。

一、常量

1.1 常量基本定义

        常量是在程序编译时就确定下来的固定值。它们可以是数值、布尔值或字符串。Go语言的常量具有以下特点:

  1. 使用 const 关键字声明
  2. 在编译时被创建
  3. 只能是基本数据类型(数值、字符串或布尔值)
  4. 不可在运行时修改

注意:

  • 一个常量被声明后可以不使用,但是变量一旦声明则必须使用。
  • 显式定义:常量的声明以关键字const开头,后接变量类型并进行赋值,行尾没有其他标点符号。const 常量名 常量类型 = value
  • 隐式定义:由于Go是编译型语言,定义常量时可以省略常量类型,因为编译器可以根据变量的值来推断其类型。const 常量名 = value
    package main
    import "fmt"
    // 单个常量声明
    const PI = 3.14159
    // 多个常量声明
    const (
    	StatusOK          = 200
    	StatusNotFound    = 404
    	StatusServerError = 500
    )
    func main() {
    	fmt.Println("PI:", PI)
    	// 常量的数学运算
    	fmt.Println("圆的面积 (半径为5):", PI*5*5)
    	// 尝试修改常量会导致编译错误
    	fmt.Println("HTTP状态码 - OK:", StatusOK)
    	fmt.Println("HTTP状态码 - Not Found:", StatusNotFound)
    	fmt.Println("HTTP状态码 - Server Error:", StatusServerError)
    }
    //result
    PI: 3.14159
    圆的面积 (半径为5): 78.53975
    HTTP状态码 - OK: 200
    HTTP状态码 - Not Found: 404
    HTTP状态码 - Server Error: 500
    

    1.2 常量组的定义

            如果程序需要用到大量值相同的常量,我们可以直接定义常量组。 在定义常量组时,若不提供初始值,则表示将使用上行的表达式。

    package main
    import "fmt"
    const (
    	a = 3.14
    	b
    	c
    	d = 100
    )
    func main() {
    	fmt.Println("a:", a)
    	fmt.Println("b:", b)
    	fmt.Println("c:", c)
    	fmt.Println("d:", d)
    }
    //result
    a: 3.14
    b: 3.14
    c: 3.14
    d: 100
    

    1.3 常量枚举

            枚举通常针对一个有穷序列集而言,一个集的枚举就是列出有穷序列集的所有成员。Go语言现阶段还没有枚举,但是我们可以使用一种特殊常量“iota”来模拟枚举。

      iota 是Go语言的一个预定义标识符,它表示从0开始的连续整数。在每个const关键字出现时,iota都会重置为0。

    package main
    import "fmt"
    func main() {
    	const (
    		a = iota    // 0
    		b           // 1, 沿用上一行的 iota
    		c = "Hello" // "Hello", iota = 2 但未使用
    		d           // "Hello", 沿用上一行的表达式
    		e = iota    // 4, iota 继续计数
    		f           // 5
    		g = iota * 2 // 12, iota = 6
    		h            // 14, 沿用 iota * 2 表达式
    		i = 1  b)
    	fmt.Printf("a = b: %t\n", a >= b)
    	fmt.Printf("a > 2 = %d, binary: %08b\n", result, result)
    	// 7. 位清空 (&^)
    	result = a &^ b
    	fmt.Printf("a &^ b = %d, binary: %08b\n", result, result)
    }
    //result
    a = 60, binary: 00111100
    b = 13, binary: 00001101
    a & b  = 12, binary: 00001100
    a | b  = 61, binary: 00111101
    a ^ b  = 49, binary: 00110001
    ^a     = -61, binary: 11000011
    a > 2 = 15, binary: 00001111
    a &^ b = 48, binary: 00110000

    2.5 赋值运算符

            最常用的赋值运算符是等号“=”,表示把右边的结果值赋值给左边的变量。其他的赋值运算 符大多都是算术运算符和赋值运算符的简写。

    运算符说明示例展开形式
    =将右边值赋给左边a=100a=100
    +=将左边值加上右边值a+=10a=a+10
    -=将左边值减去右边值a-=10a=a-10
    *=将左边值乘以右边值a*=10a=a*10
    /=将左边值除以右边值a/=10a=a/10
    %=将左边值对右边值做取模a%=10a=a%10
    **=将左边值的右边值次方赋给左边a**=2a=a**2
    //=将左边值除以右边值(取整除)a//=3a=a//3
    &=按位与运算后赋值a&=5a=a&5
    |=按位或运算后赋值a|=5a=a|5
    ^=按位异或运算后赋值a^=5a=a^5
    >>=右移运算后赋值a>>=2a=a>>2
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]