0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Juliaで学ぶプログラミング入門 制御/条件分岐

Last updated at Posted at 2022-12-04

条件分岐

条件分岐とは、プログラムの実行経路を変えるための方法です。条件分岐を使用することで、プログラムは、特定の条件を満たしている場合には、特定の処理を行い、そうでない場合には、別の処理を行うことができます。

条件分岐は、次のような場面でよく使用されます。

  • 数値が特定の範囲内かどうかを判定する場合
  • 文字列が特定の値を含んでいるかどうかを判定する場合
  • 数値が偶数か奇数かを判定する場合
  • 配列の要素が特定の値を含んでいるかどうかを判定する場合

条件分岐の種類

条件分岐には、次のような種類があります。

  • if文:条件式が真の場合に処理を実行する条件分岐です。
  • if-else文:条件式が真の場合に1つの処理を実行し、偽の場合に別の処理を実行する条件分岐です。
  • if-elseif-else文:複数の条件を指定し、それらの条件に応じて処理を分岐する条件分岐です。
  • if式:論理式が成立したブロックの最後の値を、式の値とします。
  • 三項演算子:条件 a が真(true)なら b を、偽なら c を値とする処理です。
  • switch/case文:複数の値を指定し、それらの値に応じて処理を分岐する条件分岐です。(※juliaにはありません)

if文

juliaでは、if文を使用して条件分岐を行います。次のような形式で使用します。

if 条件式
    # 条件式が真の場合の処理
else
    # 条件式が偽の場合の処理
end

上記のように、if文の後には条件式を記述します。条件式が真の場合、if文の中に記述された処理が実行されます。条件式が偽の場合、else文の中に記述された処理が実行されます。

また、elseif文を使用することで、複数の条件を指定し、それらの条件に応じて処理を分岐することができます。次のような形式で使用します。

if 条件式1
    # 条件式1が真の場合の処理
elseif 条件式2
    # 条件式2が真の場合の処理
elseif 条件式3
    # 条件式3が真の場合の処理
else
    # 条件式1,2,3が偽の場合の処理
end

if文の使用例

# 条件式
cond = true

# if文
if cond
    # 条件が真の場合の処理
    println("This is the true branch.")
else
    # 条件が偽の場合の処理
    println("This is the false branch.")
end

このコードを実行すると、次のような出力が得られます。

This is the true branch.

このように、if文を使用することができます。ただし、Juliaでは、if文の条件式の結果が真であるか偽であるかを判定するために、明示的な比較演算子を使用する必要はありません。例えば、上記のコードでは、cond変数が真であるかどうかを判定するために、cond == trueといった比較演算子を使用していません。その代わりに、単純にcond変数自体が真であるかどうかを判定しています。

if式

if式は、論理式が真の場合のブロックの最後の値を、式の値とするものです。

#数値代入
x=400

#条件式
m=if x >= 1000
         "x は 1000 以上"
       elseif x >= 500
         "x は 500 以上"
       elseif x >= 100
         "x は 100 以上"
       else
         "x は 100 未満"
       end

# m="x は 100 以上"

三項演算子

三項演算子は、3つの式から構成される演算子です。
条件 a が真(true)なら b を、偽なら c を値とする処理です。
juliaでは、三項演算子を次のような構文で使用します。

変数 = 条件式 ? 式1 : 式2

上記の構文では、変数に条件式が真の場合には、式1が代入されます。また、条件式が偽の場合には、式2が代入されます。たとえば、次のようなプログラムを考えます。

# 変数xの値を指定
x = 1

# 三項演算子を使用して、条件に応じて処理を分岐
result = x == 1 ? "xの値は1です" : "xの値は1ではありません"

# 結果を表示
println(result) #"xの値は1です"

上記のプログラムでは、変数xの値を指定しています。その後、三項演算子を使用して、xの値が1の場合と1ではない場合に応じて処理を分岐しています。この例では、xの値が1の場合には、「xの値は1です」という文字列が代入されます。また、xの値が1ではない場合には、「xの値は1ではありません」という文字列が代入されます。最後に、結果を表示しています。

ところでなぜ三項演算子は条件分岐なのでしょうか?

以下は式の代わりに出力を分岐している例です。

julia> a = false ? print(1) : print(2)
2
julia> a

julia> typeof(a)
Nothing

以上では条件式で判断したあと、その条件式にあったほうの命令を実行しています。
つまり処理の分岐をしていることがわかります。
なお、aがnothingなのはprintの戻り値が無いためです。

juliaでは、三項演算子を使用することで、条件に応じて処理を分岐することができます。また、三項演算子を使用することで、コードを簡潔に書くことができます。

参考図書

1から始めるプログラミング

Juliaプログラミングクックブック

天才プログラマー タンメイが教える Julia超入門

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?