GO語(yǔ)言初級(jí)學(xué)習(xí)之代碼案例03

GO語(yǔ)言初級(jí)學(xué)習(xí)之代碼案例03

@(go語(yǔ)言 黑馬)[GO語(yǔ)言]

打印等腰三角形

  • 題目:通過(guò)程序打印出一個(gè)“ * ”組成的等腰三角形,具體效果代碼中展示。
  • 邏輯:兩層循環(huán),外層控制行,內(nèi)層控制列。
  • 代碼如下
package main

import "fmt"

//     *            5       1   i*2+1
//    ***           4       3   i*2+1
//   *****          3       5   i*2+1
//  *******         2       7
// *********        1       9
//***********       0       11

func main() {
    for i := 0; i < 6; i++ { //最外層控制行,循環(huán)一次打印一行
        for j := 0; j < 5-i; j++ { //這個(gè)循環(huán)用來(lái)打印空格,每循環(huán)一次打印一個(gè)空格
            // 通過(guò)“j < 5-i”遞減循環(huán)次數(shù),因?yàn)榭崭駭?shù)是遞減的
            fmt.Print(" ") //不需要換行
        }
        for k := 0; k < i*2+1; k++ { //*的數(shù)量是i*2+1,i從0開(kāi)始循環(huán)
            fmt.Print("*") //不要換行,打印完一整行后再換行
        }
        fmt.Println()
    }
}

找出一個(gè)數(shù)組中最大的值

  • 題目:找出一個(gè)數(shù)組中最大的值
  • 邏輯:代碼的注釋中
  • 代碼如下
package main

import "fmt"

func main() { //找出這個(gè)集合中的最大值
    arr := [10]int{1, 2, 4, 5, 7, 3, 6, 8, 7, 5}
    var max = arr[0]//等于第一個(gè)數(shù)
    for i := 0; i < len(arr); i++ {
        if max < arr[i] {//與每個(gè)數(shù)比較
            max = arr[i]//遇到比自身大的,則賦值給自己
        }
    }
    fmt.Println("最大的數(shù)是:", max)
    //循環(huán)結(jié)束,最終輸出的就是最大的數(shù)
}

數(shù)組置換

  • 題目:把數(shù)組中的元素位置調(diào)換
  • 邏輯:通過(guò)for循環(huán)一組一組置換,用if語(yǔ)句來(lái)終止for循環(huán)。
  • 代碼如下
package main

import "fmt"

func main() {
    arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    //聲明兩個(gè)變量,分別作為數(shù)組的下標(biāo),從頭尾開(kāi)始
    start := 0
    end := len(arr) - 1//最后一個(gè)數(shù)的下標(biāo)是長(zhǎng)度減一
    for i := 0; i < len(arr); i++ {
        if start > end {//當(dāng)左邊的下標(biāo)變成右邊的時(shí),置換完畢,跳出循環(huán)
            break
        }
        arr[start], arr[end] = arr[end], arr[start]//用多重賦值來(lái)完成置換
        //左邊遞加,右邊遞減
        start++
        end--
    }
    fmt.Println(arr)
}

福利彩票雙色球

  • 題目:紅球和藍(lán)球,生成一個(gè)藍(lán)球隨機(jī)數(shù)和六個(gè)紅球隨機(jī)數(shù),不能相同顏色的球數(shù)字不能相同;藍(lán)球范圍是1-16,紅球范圍是1-33。
  • 邏輯:這里面最關(guān)鍵的是去重。
  • 代碼如下
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    var red [6]int //儲(chǔ)存6個(gè)隨機(jī)數(shù)
    var blue int
    rand.Seed(time.Now().UnixNano())
    //這是生成隨機(jī)數(shù)的種子,跟隨系統(tǒng)的時(shí)間發(fā)生改變,相同的種子生成相同的隨機(jī)數(shù)
    for i := 0; i < 6; i++ {
        var temp = rand.Intn(33) + 1 //rand.Intn(33)是生成0到33以?xún)?nèi)的隨機(jī)數(shù),不包括33,+1就可以生成1到33的隨機(jī)數(shù)(包括33)
        for j := 0; j < i; j++ {     //這個(gè)for循環(huán)是為了讓每次生成的隨機(jī)數(shù)與之前的不重復(fù)
            if temp == red[j] {//若重復(fù),則重新生成隨機(jī)數(shù)
                temp = rand.Intn(33) + 1
                j = -1//回到循環(huán)最開(kāi)始,重新與第一個(gè)數(shù)開(kāi)始比較
                //因?yàn)閏ontinue后執(zhí)行的是j++,所以賦值為-1
                continue
            }
        }
        red[i] = temp //只要不重復(fù),則輸入到數(shù)組中
    }
    fmt.Println("red=", red)
    blue = rand.Intn(16) + 1
    fmt.Println("blue=", blue)
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,835評(píng)論 18 399
  • 今天突然聽(tīng)到了《傲寒》這首歌,忽然想起來(lái),我已經(jīng)分手了快一年。時(shí)間仿佛在流逝,我卻始終逃不過(guò)這個(gè)漩渦。 我承認(rèn)我是...
    芫荽醬閱讀 316評(píng)論 0 0
  • 我們的歲月靜好是有人在背后為我負(fù)重前行。他的歲月靜好是背后無(wú)一人。自己就是歲月。莫干西人一曲道盡生命不屈。點(diǎn)支煙。...
    新家中男孩閱讀 168評(píng)論 0 1
  • 今天分享:“注意了用這個(gè)來(lái)蘸廣式燒鵝吃不油膩”。新用戶(hù)歡迎進(jìn)入官網(wǎng)《粵港燒臘論壇》免費(fèi)獲得“原味湯粉配方及制作流程...
    深圳滿(mǎn)天紅1316818閱讀 1,390評(píng)論 0 0

友情鏈接更多精彩內(nèi)容