プログラムを制御せよ!If!(Go言語)
さてさて,やっていきますか~(*'ω'*)
本日は,GoのIf文です!
先日は,For文でしたが,If文はFor文と共通するところがあります!
それでは,本日の説明用のソースコードは,こちらです!
package main
import (
"fmt"
)
func main() {
if1(1)
if2(-1)
if2(0)
if2(1)
if3(2)
if3(5)
}
func if1(x int) { /* if文の基本 */
if 0 < x { /* for文と同じく,括弧()がない! */
fmt.Println("x is positive.")
}
}
func if2(x int) { /* if-else 文 */
if x < 0 {
fmt.Println("x is negative.")
} else if x == 0 {
fmt.Println("x is zero.")
} else {
fmt.Println("x is positive.")
}
}
func if3(x int) { /* 変数の宣言付きif文 */
if v := 2 * x; v < 10 { /* for文に似てる! */
fmt.Println("v < 10")
fmt.Println("v = ", v)
}
// ここで,vは使えない.
}
Goコードは下記のサイトへコピペして実行できます!
if文の基本
if文の基本は,
if 条件式 {
条件式がtrueの場合に実行される処理
}
となります!
for文と同じく,「条件式」の部分に括弧「()」が不要なんです!
説明用コードの
func if1(x int) { /* if文の基本 */
if 0 < x { /* for文と同じく,括弧()がない! */
fmt.Println("x is positive.")
}
}
この部分が,実装例です!
関数if1の引数xが0よりも大きい場合,「x is positive.」が標準出力されます!
if-else文
Goのif-else文はこちらです!
func if2(x int) { /* if-else 文 */
if x < 0 {
fmt.Println("x is negative.")
} else if x == 0 {
fmt.Println("x is zero.")
} else {
fmt.Println("x is positive.")
}
}
上記のコードは,
「x<0 」がtrueなら,「x is negative.」
「x==0」がtrueなら,「x is zero.」
上記以外 なら,「x is positive.」
が標準出力されます!
このように,if-else文では,上から順に条件式が評価され,
trueであれば,対応する処理を実行して,if-else文が終了
falseであれば,次の条件式の評価
のように処理が流れていきます!
変数の宣言付きif文
最後は,こちらです!
func if3(x int) { /* 変数の宣言付きif文 */
if v := 2 * x; v < 10 { /* for文に似てる! */
fmt.Println("v < 10")
fmt.Println("v = ", v)
}
// ここで,vは使えない.
}
何じゃこりゃ(; ・`д・´) って感じですねw
この書き方は,従来の言語(C,C++,Java etc.)とは異なり,独特ですね!
しかーし,よく見ると,for文と同じなんです!
結果的に,if文とfor文の書き方が似ているので
わかり易いとも言えそうです('ω')
簡単に解説すると,
if 変数の初期化 ; 条件式 {
条件式がtrueの場合に実行される処理
(このブロック+条件式の中では,「変数の初期化」で宣言した変数が使えます)
}
(ブロックの外では,「変数の初期化」で宣言した変数は使えません.)
こんな感じです!ちなみに「ブロック」とは中括弧「{}」で囲んだコードの集まりのことです!
以上で,if文の説明は終了です!
終わりに
どうでしたか?
基本的に,C系列の文法と似ていますが,
・条件式に括弧()が省略されていたり,
・for文と同じく「変数の初期化」ができたり,
Go独特な書き方もありましたね!
次回は,Switch文です!
サポートお願いいたします.主に初心者から中級向けに,ソフトウェア開発に関する知識を提供していきます.