LoginSignup
38
10

More than 3 years have passed since last update.

[一発ネタ] Golang で GoTo キャンペーン [クソコード]

Posted at

みなさんこんにちは! 最近旅してますか?
私は天気が悪いわコロナで騒がしいわで旅できてません!

なんかイライラしてきたので今回はプログラムの中だけでも旅をしましょう。
というわけで、モダンな言語なのになんでか知らんがgoto文のあるGo言語でGotoキャンペーンをキメたいと思います!

次のプログラムが最終的に出力する文字列を、実行せずに処理を追って当ててみましょう!

プログラム本文

package main

import "fmt"

func main() {
    fmt.Print("Go to ")

    var money int = 10000
    var toWhere string
    var a int

    goto TROUBLE
    goto TRAVEL

    NIGATA:
        if money == 31000 {
            toWhere = "fukuoka"
            goto FUKUSHIMA
        } else {
            toWhere += "tou"
            goto YOKOHAMA
        }
        return

    TRAVEL:
        fmt.Println("travel")
        return

    YOKOHAMA:
        fmt.Println(toWhere)
        return

    TROUBLE:
        a = 3

        if a % 2 == 1{
            goto KYOTO
        } else {
            goto TOKYO
        }
        return

    FUKUSHIMA:
        fmt.Println(toWhere)
        return

    TOCHIGI:
        toWhere = "ret"

    SAITAMA:
        money += 3000

    HOKKAIDO:
        if money > 30000{
            goto NIGATA
        } else if money > 20000{
            goto CHIBA
        } else if money < 20000 {
            goto SAITAMA
        } else if money <= 12000{
            goto GUNMA
        }
        fmt.Println("hokkaido")
        return

    GUNMA:
        fmt.Println("gunma")

    TOKYO:
        fmt.Println("tokyo")
        return

    CHIBA:
        money = 29000
        goto TOCHIGI
        return

    FUKUOKA:
        fmt.Println("fukuoka")
        return

    KYOTO:
        toWhere = "kyoto"

        for _, char := range toWhere {
            if char == 'y' {
                money += 5000
                goto HOKKAIDO
            }

            if char == 't' {
                money += 2000
                goto FUKUOKA
            }
        }

        fmt.Println(toWhere)

        return


}

おわりに

いかがでしたか? クソコードすぎて Go to hell するところでしたね。
実際の現場でこんなコードを書いたら Go to hell してもらいます。
このクソコードを素早く読めた人は高いクソコード適性があるので、自慢がてらコメント欄にて回答をコメントしてね!

38
10
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
10