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
   処理
end
-- elseifとelseを書く場合
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)

△上に戻る