Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Conditional Chaining | 制御構造
Go入門

bookConditional Chaining

メニューを表示するにはスワイプしてください

else if キーワードを使用することで、前の条件が満たされなかった場合に評価される追加の条件を定義可能。

index.go

index.go

copy
12345678910
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 2) { fmt.Println("3 is greater than 2") } }

上記のプログラムでは、最初に式 3 > 4 が評価され、これは false となるため、プログラムは 3 > 2 キーワードで定義された次の文(else if)に進む。次の条件は true となるため、2 番目の Println 文の結果が出力される。

else if 文を使うことで、必要に応じて追加の条件をいくつでも追加可能。

index.go

index.go

copy
1234567891011121314
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 3) { fmt.Println("3 is greater than 3") } else if (3 > 2) { fmt.Println("3 is greater than 2") } else if (3 > 1) { fmt.Println("3 is greater than 1") } }

上記のプログラムは、次の条件も 3 is greater than 2 であるにもかかわらず、true のみを出力する点に注意が必要です。これは、if-else if チェーンが最初に true となる条件に出会った時点で評価を停止することを示しています。

このプロセスは条件チェーン(conditional chaining)と呼ばれ、if-else if キーワードを使って条件を連鎖的に定義しているためです。

注意

条件チェーンでは、条件を満たす1つのコードブロックのみが実行され、残りはスキップされます。

また、if-else if の組み合わせで条件を連鎖させる代わりに、それぞれの条件を個別の if 文で記述することもできます。しかし、この方法では出力が異なります。なぜなら、もはや単一のチェーンではなく、独立した複数の条件となるため、いずれかの条件が満たされても実行が停止しないからです。

index.go

index.go

copy
1234567891011121314151617
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } if (3 > 3) { fmt.Println("3 is greater than 3") } if (3 > 2) { fmt.Println("3 is greater than 2") } if (3 > 1) { fmt.Println("3 is greater than 1") } }

これまでのところ、簡単にするためにブール式には値を使用してきました。しかし、実際にはブール式で変数や変数と値の組み合わせを使うことが一般的です。

index.go

index.go

copy
123456789
package main import "fmt" func main() { var value int = 10 if (value == 10) { fmt.Println("The variable has the expected value.") } }

条件分岐の連鎖では、else キーワードを使うことで、どの条件にも当てはまらない場合に実行されるコードブロックを示すことができます。

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var value int = 70 if (value < 50) { fmt.Println("The value is less than 50") } else if (value == 50) { fmt.Println("The value is equal to 50") } else { fmt.Println("The value is greater than 50") } }
question mark

どの行が出力に含まれますか?

すべての正しい答えを選択

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  3
some-alt