go学习———第一阶段

15 篇文章 0 订阅

一、go初步学习

1. 基础类型

变量初始化

    var v1 int = 10  // 方式1
    var v2 = 10       // 方式2,编译器自动推导出v2的类型
    v3 := 10           // 方式3,编译器自动推导出v3的类型
    //出现在 := 左侧的变量不应该是已经被声明过,:=定义时必须初始化
    var v4 int
    v4 := 2 //err

变量赋值

    var v1 int
    v1 = 123
 
    var v2, v3, v4 int
    v2, v3, v4 = 1, 2, 3    //多重赋值
 
    i := 10
    j := 20
    i, j = j, i    //多重赋值

常量赋值

const pi float64 = 3.14

const a = 7

const a,b,c int = 6,7,8

const(
    a int = 7
    b   =  8
)

const(
    a=1
    b
    c
)//a,b,c=1

iota枚举

 const (
        a       = iota //a=0
        b       = "B"
        c       = iota             //c=2
        d, e, f = iota, iota, iota //d=3,e=3,f=3
        g       = iota             //g = 4
 )

输入

var n int
fmt.Print("请输入一个数:")//是一个友情提示,可有可无
fmt.Scan(&n)//将输入的值赋给n
//fmt.Scan("%d",&n)   也可以用这种方式

2. 流程控制

循环语句(range)

关键字 range 会返回两个值,第一个返回值是元素的数组下标,第二个返回值是元素的值:

 s := "abc"
    for i := range s { //支持 string/array/slice/map。
        fmt.Printf("%c\n", s[i])
    }
 
    for _, c := range s { // 忽略 index
        fmt.Printf("%c\n", c)
    }
 
    for i, c := range s {
        fmt.Printf("%d, %c\n", i, c)
    }

二、第一阶段考核题

1. 输入一个三位整数,求出该数每个位上的数字之和。如123,每个位上的数字之和就是1+2+3=6。

package main

import (
	"fmt"
)

func main() {
	var n, a, b, c int
	fmt.Println("请输入一个数:")
	fmt.Scan(&n)
	a = n / 100
	b = n % 100 / 10
	c = n % 10
	sum := a + b + c
	fmt.Print(sum)
}

2. 输入小明的分数(0 ~ 100),并判断并输出小明的学习成绩(0~59 为 D,6079为C,8089为B,90~100为A)

package main

import (
	"fmt"
)

func main() {
	var score int
	fmt.Print("请输入分数score:")
	fmt.Scan(&score)
	// switch 语句
	// 当想要使用条件表达式(case后面)的时候,switch后面不可以写东西了
	// 如果switch后面写了东西,那么就是用写的东西去匹配case后面的值了
	// func main() {
	// 	s := 100
	// 	switch s {
	// 	case 1:
	// 		fmt.Println("0")
	// 	case 100:
	// 		fmt.Println("s=100")
	// 	}
	switch {
	case score >= 90:
		fmt.Print("A")
	case score >= 80:
		fmt.Print("B")
	case score >= 60:
		fmt.Print("C")
	case score >= 0:
		fmt.Print("D")

	}
}

3. 输入一个整数 n 输出从1到n的阶乘。即 1! + 2! + 3! +…+n!

package main

import (
	"fmt"
)

func main() {
	// var (
	// 	n   int
	// 	j   int = 1
	// 	sum int = 0
	// )
	var n int
	j := 1
	sum := 0
	fmt.Print("请输入一个整数n:")
	fmt.Scan(&n)
	for i := 1; i <= n; i++ {
		j = j * i
		sum += j
	} //大括号后面写的东西都要另起一行
	fmt.Printf("1!+2!+3!+...+%d!=%d", n, sum)
}

4. Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。输入一个 n 输出 Fn ,如输入n = 3,则输出 Fn=2

package main

import (
	"fmt"
)

func main() {
	var n, a, b, c int
	a, b, c = 1, 1, 0
	fmt.Print("请输入一个正整数n:")
	fmt.Scan(&n)
	for i := 1; i <= n-2; i++ {
		c = a + b
		a = b
		b = c
	}
	fmt.Printf("F%d=%d", n, c)
}
//用递归函数求
package main

import (
	"fmt"
)
func D(i int) int {
	if i == 1 || i == 2 {
		return i - 1
	}

	return D(i-1) + D(i-2)
}
func main(){
    fmt.Printf("请输入一个正整数:")
	fmt.Scan(&h)
	result := D(h)
	fmt.Printf("result=%d\n", result)
}

5. 打印图形:输入一个整数n,n为菱形的边长,打印出该菱形

  * 
  * * 
 * * * 
* * * * 
 * * * 
  * * 
   * 
package main

import (
	"fmt"
)

func main() {
	var n int
	fmt.Print("请输入一个数n:")
	fmt.Scan(&n)
	for i := 1; i <= n; i++ {
		for j := 1; j <= n-i; j++ {
			fmt.Print(" ")
		}
		for s := 1; s <= i; s++ {
			fmt.Print("* ")
		}
		fmt.Println()
	}
	for i := n - 1; i > 0; i-- {
		for j := n - 1; j >= i; j-- {
			fmt.Print(" ")
		}
		for s := n - 1; s >= n-i; s-- {
			fmt.Print("* ")
		}
		fmt.Println()
	}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值