条件分岐の使い方と実践例
プログラミングにおいて、条件分岐は非常に重要な機能です。Elixirにおいても、条件分岐を行うためのさまざまな方法が提供されています。この記事では、Elixirでの条件分岐の基本的な使い方から実践的な例までを紹介します。
概要
条件分岐は、プログラムの実行フローを制御するために使用されます。Elixirでは、主に以下のような条件分岐の方法があります。
-
if
文
-
case
文
-
cond
式
- ガード節
それぞれの方法を使い分けて、柔軟な条件分岐を実現することができます。また、条件分岐を活用することで、複雑な処理をシンプルに表現することができます。
コンテンツ
1.
if
文の基本的な使い方
文は、指定した条件が真である場合と偽である場合で、異なる処理を実行するために使用されます。以下は、
文の基本的な構文です。
if 条件 do
# 条件が真の場合に実行する処理
else
# 条件が偽の場合に実行する処理
end
例えば、以下のようなコードでは、
が18歳以上であれば”成人です”と表示し、そうでなければ”未成年です”と表示します。
age = 20
if age >= 18 do
IO.puts "成人です"
else
IO.puts "未成年です"
end
2.
case
文の活用
文は、複数のパターンに対して処理を分岐させるために使用されます。以下は、
文の基本的な構文です。
case 式 do
パターン1 -> 処理1
パターン2 -> 処理2
...
_ -> デフォルトの処理
end
例えば、以下のようなコードでは、
に応じて異なる処理を行います。
fruit = "apple"
case fruit do
"apple" -> IO.puts "りんごです"
"banana" -> IO.puts "バナナです"
_ -> IO.puts "その他の果物です"
end
3.
cond
式の活用
式は、複数の条件を評価し、最初に真となった条件に対応する処理を実行するために使用されます。以下は、
式の基本的な構文です。
cond do
条件1 -> 処理1
条件2 -> 処理2
...
true -> デフォルトの処理
end
例えば、以下のようなコードでは、
に応じて異なる評価を行います。
score = 85
cond do
score >= 90 -> IO.puts "秀"
score >= 80 -> IO.puts "優"
score >= 70 -> IO.puts "良"
score >= 60 -> IO.puts "可"
true -> IO.puts "不可"
end
4. ガード節の活用
Elixirでは、関数定義時にガード節を使用して条件分岐を行うことができます。以下は、ガード節を活用した関数定義の例です。
defmodule MyModule do
def is_even(number) when rem(number, 2) == 0 do
true
end
def is_even(_) do
false
end
end
上記の例では、
関数が奇数か偶数かを判定しています。
キーワードを使用することで、特定の条件を満たす場合にのみ該当する関数定義を行うことができます。
サンプルコード
以下は、条件分岐の各方法を組み合わせたサンプルコードの一例です。
defmodule MyModule do
def get_grade(score) do
cond do
score >= 90 -> "秀"
score >= 80 -> "優"
score >= 70 -> "良"
score >= 60 -> "可"
true -> "不可"
end
end
def greet_age(age) do
if age >= 18 do
IO.puts "成人です"
else
IO.puts "未成年です"
end
end
def get_fruit_description(fruit) do
case fruit do
"apple" -> "りんごです"
"banana" -> "バナナです"
_ -> "その他の果物です"
end
end
end
MyModule.get_grade(75) # => "良"
MyModule.greet_age(20) # => "成人です"
MyModule.get_fruit_description("apple") # => "りんごです"
まとめ
この記事では、Elixirにおける条件分岐の基本的な使い方と実践例について紹介しました。
文、
文、
式、ガード節など、さまざまな方法を使い分けることで、柔軟な条件分岐を実現できます。条件分岐を活用することで、プログラムの制御フローを効果的に制御し、より洗練されたコードを記述することができます。
よくある質問
- Q. Elixirでの条件分岐はどのように行いますか?
- A: Elixirでは、
if
や
caseなどの構文を使用して条件分岐を行います。詳細については、公式ドキュメントを参照してください。
- Q: Elixirの
case
文と
cond文の違いは何ですか?
- A:
case
文は値に合わせたパターンマッチングを行い、
cond文は複数の条件を評価するための構文です。
- Q: Elixirでのガード節の使い方を教えてください。
- A: ガード節は
when
キーワードを使用して条件を追加するための構文です。例えば、
fun(x) when x > 0 ->のように使用します。
- Q: Elixirでのパターンマッチングとは何ですか?
- A: Elixirでは、関数や
case
文などでのパターンマッチングがよく使われます。これにより、特定の条件に合致するかどうかを判定することができます。
- Q: Elixirでの条件分岐を使った実践例を教えてください。
- A: 例えば、ある数値に応じて異なる処理を行う関数を作成する場合、
case
文を使用してパターンマッチングを行うことができます。