Lua if文のサンプル

Luaのif文のサンプルです。

確認環境
・Lua 5.4.1

目次

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

if文

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

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文を記述しています。ネストの構造です。入れ子ともいいます。

関係演算子 (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になります。

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になります。

関連の記事

Lua for文のサンプル(break/continue)

△上に戻る