Help us understand the problem. What is going on with this article?

Go言語を真剣に勉強してみた〜基本構文編①(変数、定数、条件分岐、繰り返し処理)〜

More than 1 year has passed since last update.

はじめに

こんにちは。某学校でプログラミング等の勉強中のサーバーサイドのプログラマーのワタタクです。:relaxed:
さて今回は「Go言語を真剣に勉強してみた〜基本構文編〜」と」言うことなのですが、記事が長ったらしくなる為何回かに分けて出来たらなと思います。
では、早速いってみましょう:point_up:

変数

変数は以下のとうりで宣言します。
*ちなみにGo言語ではセミコロン(;)はいりません!!

var 変数名 データ型

またこのような書き方もあります。

var 変数名 = 初期値

さらにこのような書き方もできます。

変数名 := 初期値

3番目の記述方法が多く使われていて、参考書とかもこの書き方が多い。

variable.go
var a int
a = 10

var b = 20
b := 20 //上のvar b = 20と意味は同じ。

定数

定数は以下のように記述します。

const 定数名 = 初期値

定数も変数と同じく肩指定できるが、通常は型を指定しません。

定数の連番定義

定数ジェネレータの iota を使用すると、連番からなる定数を簡単に定義することができます。

const.go
const (
    _      = iota //=> 0
    FAST          //=> 1
    NORMAL        //=> 2
    SLOW          //=> 3
)

条件分岐

1)if文

if 条件式 {
    //処理
} else if 条件式 {
    //処理
} else {
    //処理
}
if.go
a := 22

if a > 20 {
    fmt.Println("成人")
} else {
   fmt.Println("子供")
}

このように他の言語と同じくelse ifがなかったりelseがない場合は書かなくていい。

2)switch文

switch 条件の値 {
    case 値1:
         //処理
    case 値2:
         //処理
    case 値3:
         //処理
        ・
        ・
        ・
        default:
                  //処理
}

また以下の例みたいにcaseの値を式にも出来ます。その場合、条件の値のところには何も記述しません。

*CやJavaなどのswitch文は,1つのcaseが実行されるとその次のcaseに処理が移るため,単一のcaseの実行で終わらせたい場合に,caseごとにbreakを書く必要がありました。しかしGoのswitch文では,caseが1つ実行されると次のcaseに実行が移ることなくswitch文が終了するため,breakをいちいち書く必要はありません。

ただ,caseの処理が終わったあとに,次のcaseに処理を進めたい場合もあります。そうした場合はcase内にfallthroughを書くことで,明示的に次のcaseに処理を進めることができます。

switch.go
    n := 10

    switch {
        case n % 15 == 0:
          fmt.Println("FizzBuzz")
        case n % 5 == 0:
          fmt.Println("Buzz")
        case n % 3 == 0:
          fmt.Println("Fizz")
        default:
          fmt.Println(n)
    }

ループ処理

*Goでのループはwhile文がなくfor文のみ。

for 初期値; 条件式; 初期値をどうする? {
    //処理
}
for.go
   for i := 1; i < 10; i++ {
        if i % 2 == 0 {
             continue
        }
        fmt.Println(i)//1,3,5,7,9
   }

他の言語と同じくbreak文continue文も使える。

無限ループ

無限ループを作る場合は以下の通り

for ;; {}

条件を適切に扱う必要がある。
以下例

for.go
   for value := 0;; {
       value++
       fmt.Println(value)//1,2,3,4,5,6
       if value % 6 == 0 {
           break
       }
    }
}

以上。
もし何か間違っている等のご指摘があればご連絡ください。
最後まで読んで頂きありがとうございました。
次回は「Go言語を真剣に勉強してみた〜基本構文編②(配列)〜」です。

よろしければ、Go言語を真剣に勉強してみた〜環境構築編〜もご覧ください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away