Golang 【第四篇】运算符-键盘输入语句

运算符与键盘输入语句

 

1 算数运算符一览表

 

 运算符

package main
import (
    "fmt" 
)

func main() {

    //重点讲解 /、%
    //说明,如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
    fmt.Println(10 / 4) 
    
    var n1 float32 = 10 / 4 //
    fmt.Println(n1)

    //如果我们希望保留小数部分,则需要有浮点数参与运算
    var n2 float32 = 10.0 / 4
    fmt.Println(n2)

    // 演示  % 的使用 
    // 看一个公式 a % b = a - a / b * b
    // fmt.Println("10%3=", 10 % 3) // =1
    // fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
    // fmt.Println("10%-3=", 10 % -3) // =1
    // fmt.Println("-10%-3=", -10 % -3) // =-1

    // ++ 和 --的使用
    var i int = 10
    i++ // 等价 i = i + 1
    fmt.Println("i=", i) // 11
    i-- // 等价 i = i - 1
    fmt.Println("i=", i) // 10

    if i > 0 {
        fmt.Println("ok")
    }
    
}
运算符1
package main
import (
    _ "fmt" 
)
func main() {

    //在golang中,++ 和 -- 只能独立使用.
    // var i int = 8
    // var a int 
    // a = i++ //错误,i++只能独立使用 
    // a = i-- //错误, i--只能独立使用

    // if i++ > 0 {  //错误
    //     fmt.Println("ok")
    // }

    // var i int = 1
    // i++
    // ++i // 错误,在golang没有 前++
    // i-- 
    // --i // 错误,在golang没有 前--
    // fmt.Println("i=", i)
}
运算符2
package main
import (
    "fmt" 
)
func main() {

    //假如还有97天放假,问:xx个星期零xx天
    var days int = 97
    var week int = days / 7
    var day int = days % 7
    fmt.Printf("%d个星期零%d天\n", week, day)


    //定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:
    //5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
    var huashi float32 = 134.2
    var sheshi float32 = 5.0 / 9 * (huashi - 100)
    fmt.Printf("%v 对应的摄氏温度=%v \n", huashi, sheshi)
}
exec

 

2 关系运算符

 

package main
import (
    "fmt" 
)

func main() {
    //演示关系运算符的使用
    var n1 int = 9
    var n2 int = 8
    fmt.Println(n1 == n2) //false
    fmt.Println(n1 != n2) //true
    fmt.Println(n1 > n2) //true
    fmt.Println(n1 >= n2) //true
    fmt.Println(n1 < n2) //flase
    fmt.Println(n1 <= n2) //flase
    flag := n1 > n2
    fmt.Println("flag=", flag)

    
}
View Code

 

3 逻辑运算符

package main
import (
    "fmt" 
)

//声明一个函数(测试)
func test() bool {
    fmt.Println("test....")
    return true
}

func main() {

    var i int = 10
    //短路与
    //说明 因为  i < 9 为 false ,因此后面的 test() 就不执行
    // if i < 9 && test() {
    //     fmt.Println("ok...")
    // }

    if i > 9 || test() {
        fmt.Println("hello...")
    }

   /*

    //演示逻辑运算符的使用  &&
    var age int = 40
    if age > 30 && age < 50 {
        fmt.Println("ok1")
    }

    if age > 30 && age < 40 {
        fmt.Println("ok2")
    }

    //演示逻辑运算符的使用  ||

    if age > 30 || age < 50 {
        fmt.Println("ok3")
    }

    if age > 30 || age < 40 {
        fmt.Println("ok4")
    }

    //演示逻辑运算符的使用  !

    if age > 30 {
        fmt.Println("ok5")
    }

    if !(age > 30) {
        fmt.Println("ok6")
    } */

}
逻辑运算符

 

赋值运算符

 

 

package main
import (
    "fmt" 
)

func test() int {
    return 90
}

func main() {
    //赋值运算符的使用演示
    // var i int 
    // i = 10 //基本赋值

    //有两个变量,a和b,要求将其进行交换,最终打印结果
    // a = 9 , b = 2 ==> a = 2 b = 9
    a := 9
    b := 2
    fmt.Printf("交换前的情况是 a = %v , b=%v \n", a, b)
    //定义一个临时变量
    t := a
    a = b //
    b = t //
    fmt.Printf("交换后的情况是 a = %v , b=%v \n", a, b)

    //复合赋值的操作
    a += 17 // 等价 a = a + 17
    fmt.Println("a=", a)


    var c int 
    c = a + 3 // 赋值运算的执行顺序是从右向左
    fmt.Println(c)

    //2)赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
    // 表达式:任何有值都可以看做表达式
    var d int
    d = a //  
    d = 8 + 2 * 8 // =的右边是表达式
    d = test() + 90 //  =的右边是表达式
    //d = 890 // 890常量
    fmt.Println(d)
}
变量交换

 

4 其他运算符

package main
import (
    "fmt" 
)
func main() {
    //演示一把 & 和 *的使用

    a := 100
    fmt.Println("a 的地址=", &a)

    var ptr *int = &a
    fmt.Println("ptr 指向的值是=", *ptr)

    var n int 
    var i int = 10
    var j int = 12
    //传统的三元运算
    //n = i > j ? i : j
    if i > j {
        n = i
    } else {
        n = j
    }
    fmt.Println("n=", n) // 12
}
& 与 *的使用

 

5 键盘输入语句与三元运算

package main
import (
    "fmt" 
)


func main() {

    //要求:可以从控制台接收用户信息,【姓名,年龄,薪水, 是否通过考试 】。
    //方式1 fmt.Scanln
    //1先声明需要的变量
    var name string
    var age byte
    var sal float32
    var isPass bool
    // fmt.Println("请输入姓名 ")
    // //当程序执行到 fmt.Scanln(&name),程序会停止在这里,等待用户输入,并回车 
    // fmt.Scanln(&name)
    // fmt.Println("请输入年龄 ")
    // fmt.Scanln(&age)
    // fmt.Println("请输入薪水 ")
    // fmt.Scanln(&sal)

    // fmt.Println("请输入是否通过考试 ")
    // fmt.Scanln(&isPass)

    // fmt.Printf("名字是 %v \n 年龄是 %v \n 薪水是 %v \n 是否通过考试 %v \n", name, age, sal, isPass)

    //方式2:fmt.Scanf,可以按指定的格式输入
    fmt.Println("请输入你的姓名,年龄,薪水, 是否通过考试, 使用空格隔开")
    fmt.Scanf("%s %d %f %t", &name, &age, &sal, &isPass)
    fmt.Printf("名字是 %v \n年龄是 %v \n 薪水是 %v \n 是否通过考试 %v \n", name, age, sal, isPass)


}
Scanf
package main
import (
    "fmt" 
)
func main() {

    //求两个数的最大值
    var n1 int = 10
    var n2 int = 40
    var max int
    if n1 > n2 {
        max = n1
    } else {
        max = n2
    }
    fmt.Println("max=", max)

    //求出三个数的最大值思路:先求出两个数的最大值,
    //然后让这个最大值和第三数比较,在取出最大值
    var n3 = 45
    if n3 > max {
        max = n3
    }
    fmt.Println("三个数中最大值是=", max)

}
求最大值

 

6 进制

package main
import (
    "fmt" 
)


func main() {

    var i int = 5
    //二进制输出 
    fmt.Printf("%b \n", i)

    //八进制:0-7 ,满8进1. 以数字0开头表示
    var j int = 011 // 011=> 9
    fmt.Println("j=", j)

    //0-9及A-F,满16进1. 以0x或0X开头表示
    var k int = 0x11 // 0x11=> 16 + 1 = 17
    fmt.Println("k=", k)
}
进制输出
package main
import (
    "fmt" 
)
func main() {

    //位运算的演示
    fmt.Println(2&3) // 2
    fmt.Println(2|3) // 3
    fmt.Println(2^3) // 3
    fmt.Println(-2^2) //-4

    a := 1 >> 2 //0
    c := 1 << 2 //4
    fmt.Println("a=", a, "c=", c)
    
}
位运算

 

posted @ 2021-07-29 18:54  风hua  阅读(143)  评论(0)    收藏  举报