Skip to content

Latest commit

 

History

History
115 lines (84 loc) · 2.29 KB

6.07.md

File metadata and controls

115 lines (84 loc) · 2.29 KB

セクション 6.7 条件 - if文

if文

  • bool
    • true
    • false
  • 否定演算子
    • !
  • 初期化文
  • if/else
  • if/else
  • if/else
  • if/else if/.../else

_if文_は条件文です。制御構造で話したことですが、プログラムにはシーケンス、イテレーション、条件があります。シーケンスは上から下へ、イテレーションはループ、そして条件は分岐です。

truefalse!true!falseを使ってやってみましょう。

package main

import (
	"fmt"
)

func main() {
	if true {
		fmt.Println("001")
	}

	if false {
		fmt.Println("002")
	}

	if !true {
		fmt.Println("003")
	}

	if !false {
		fmt.Println("004")
	}

playground

上の例によると、if trueは常に真になって実行されます。if trueは常に偽で実行されません。if !trueは真_でない_ので偽と同じで、実行_されません_。if !falseは偽_ではない_ので実行されます。

番号と!演算子の例を見てみましょう。

package main

import (
	"fmt"
)

func main() {
	if 2 == 2 {
		fmt.Println("001")
	}

	if 2 != 2 {
		fmt.Println("002")
	}

	if !(2 == 2) {
		fmt.Println("003")
	}

	if !(2 != 2) {
		fmt.Println("004")
	}
}

playground

Goでは、セミコロンを行末に見ることはほとんどありません。初期化文で見ることがあるぐらいです。

ここでは2つの文を1行で書きたいのでセミコロンを使いましょう。

package main

import (
	"fmt"
)

func main() {
	fmt.Println("here's a statement"); fmt.Println("something else")
}

このコードをフォーマットすれば(go fmtやplaygroundのformat)、セミコロンで分割した文が2行になるはずです。

初期化のユースケースとしては、例えばif x := 42; x == 2ではx42で初期化され、x == 2かを評価します。x == 2falseです。

package main

import (
	"fmt"
)

func main() {
	if x := 42; x == 2 {
		fmt.Println("001")
	}
	fmt.Println("文があります")
	fmt.Println("ほげほげ")
}

playground