【Elixir】条件分岐の使い方と実践例

条件分岐の使い方と実践例

プログラミングにおいて、条件分岐は非常に重要な機能です。Elixirにおいても、条件分岐を行うためのさまざまな方法が提供されています。この記事では、Elixirでの条件分岐の基本的な使い方から実践的な例までを紹介します。

概要

条件分岐は、プログラムの実行フローを制御するために使用されます。Elixirでは、主に以下のような条件分岐の方法があります。

  1. if

  2. case

  3. cond

  4. ガード節

それぞれの方法を使い分けて、柔軟な条件分岐を実現することができます。また、条件分岐を活用することで、複雑な処理をシンプルに表現することができます。

コンテンツ

1.

if

文の基本的な使い方

if

文は、指定した条件が真である場合と偽である場合で、異なる処理を実行するために使用されます。以下は、

if

文の基本的な構文です。


if 条件 do
  # 条件が真の場合に実行する処理
else
  # 条件が偽の場合に実行する処理
end

例えば、以下のようなコードでは、

age

が18歳以上であれば”成人です”と表示し、そうでなければ”未成年です”と表示します。


age = 20

if age >= 18 do
  IO.puts "成人です"
else
  IO.puts "未成年です"
end

2.

case

文の活用

case

文は、複数のパターンに対して処理を分岐させるために使用されます。以下は、

case

文の基本的な構文です。


case 式 do
  パターン1 -> 処理1
  パターン2 -> 処理2
  ...
  _ -> デフォルトの処理
end

例えば、以下のようなコードでは、

fruit

に応じて異なる処理を行います。


fruit = "apple"

case fruit do
  "apple" -> IO.puts "りんごです"
  "banana" -> IO.puts "バナナです"
  _ -> IO.puts "その他の果物です"
end

3.

cond

式の活用

cond

式は、複数の条件を評価し、最初に真となった条件に対応する処理を実行するために使用されます。以下は、

cond

式の基本的な構文です。


cond do
  条件1 -> 処理1
  条件2 -> 処理2
  ...
  true -> デフォルトの処理
end

例えば、以下のようなコードでは、

score

に応じて異なる評価を行います。


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

上記の例では、

is_even/1

関数が奇数か偶数かを判定しています。

when

キーワードを使用することで、特定の条件を満たす場合にのみ該当する関数定義を行うことができます。

サンプルコード

以下は、条件分岐の各方法を組み合わせたサンプルコードの一例です。


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における条件分岐の基本的な使い方と実践例について紹介しました。

if

文、

case

文、

cond

式、ガード節など、さまざまな方法を使い分けることで、柔軟な条件分岐を実現できます。条件分岐を活用することで、プログラムの制御フローを効果的に制御し、より洗練されたコードを記述することができます。

よくある質問

  • 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

    文を使用してパターンマッチングを行うことができます。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x