Lua if文のサンプル

Luaのif文のサンプルです。条件で処理を分岐する時に使用します。(確認環境:Lua5.4)

目次

if文 if文とは / if文のサンプル / ネスト構造 if文の中にif文
  nilを比較する
  関係演算子 (Relational Operators)
論理演算子 論理積(and) AかつB / 論理和(or) AまたはB / 論理否定(not) Aではない

if文とは

if 条件 then
   処理
end
-- elseifとelseを書く場合
if 条件 then
   処理
elseif  条件  then
   処理
else
  処理
end
  • 条件が合致する場合、配下の処理が実行され、if文の処理は終了します。
  • 条件が合致することをtrue(真)ともいいます。
  • 条件が合致しないことをfalse(偽)ともいいます。
  • 条件が合致しない場合、配下の処理は実行されず、その下(elseif/else/if文終了)に進みます。
  • elseifは、1つ以上記述できます。省略可能です。
  • elseの処理は、どの条件も合致しなかったときに実行されます。elseは1つのみ記述できます。省略可能です。

if文のサンプル

a = 1

if a == 1 then
	print("1") -- 1と出力される
end

elseifのサンプルです。

a = 2

if a == 1 then
	print("1")
elseif a == 2 then
	print("2") -- 2と出力される
end

elseのサンプルです。

a = 2

if a == 1 then
	print("1")
else
	print("2") -- 2と出力される
end

 

ネスト構造  if文の中にif文

a = 1
b = 1

if a == 1 then
	if b == 1 then
		print("1") -- 1と出力される
	end
end

5行目は、if文の中にif文を記述しています。ネストの構造です。入れ子ともいいます。

nilを比較する

a = nil

if a == nil then
	print("OK") -- OKと出力される
	print(a) -- nilと出力される
end

if not (a) then
	print("OK") -- OKと出力される
	print(a) -- nilと出力される
end

3行目は、==でnilを判定しています。
8行目は、notでnilを判定しています。nilの場合、trueになります。

関係演算子 (Relational Operators)

2つの値を比べて条件を満たしていればtrue,そうでない場合はfalseを返します。

関係演算子 説明
a == b aとbの値は等しい
a ~= b aとbの値は等しくない
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい

https://www.lua.org/pil/3.2.html

論理積(and)  AかつB

if 左の条件 and 右の条件
  • 左の条件と右の条件が両方ともtrueの場合、trueになります。それ以外はfalseです。
  • 左の式がfalseかnilの場合、右の条件は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
  • https://www.lua.org/pil/3.3.html
a = 6

if a == 6 and a < 10 then
	print("OK") -- OKと出力される
else
	print("NG")
end

3行目は、左の条件と右の条件が共にtrueなので、trueになります。

論理和(or)  AまたはB

if 左の条件 or 右の条件
  • 左の条件または右の条件のどちらかがtrueの場合、trueになります。
  • 左の式がtrueの場合、右の条件は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
  • https://www.lua.org/pil/3.3.html
a = 1

if a == 0 or a < 10 then
	print("OK") -- OKと出力される
else
	print("NG")
end

3行目は、左の条件はfalseですが右の条件がtrueなのでtrueになります。

論理否定(not)  Aではない

if not (条件) 
  • 条件がfalseの場合にtrueになります。
  • 条件がtrueの場合にfalseになります。
a = 1

if not(a == 2) then
	print("OK") -- OKと出力される
end

if not(a == 1) then
	print("OK")
else
	print("NG") -- NGと出力される
end

3行目は値の比較でfalseになり、それをnotで否定するのでtrueになります。
7行目は値の比較でtrueになり、それをnotで否定するのでfalseになります。

関連の記事

Lua for文 処理を繰り返すサンプル(break/continue)

△上に戻る