1. ホーム
  2. スクリプト・コラム
  3. ルア

Luaで変数とフロー制御をはじめよう

2022-02-10 09:41:40

コピーコード コードは以下の通りです。
num = 42 -- all numbers are doubles.
-- Don't worry, there are 52 of the 64 bits of double used for
-- to save exact int values; for int values that need 52 bits or less, the
-- machine precision is not an issue.

コピーコード コードは以下の通りです。
s = 'walternate' -- an immutable string like Python.
t = "Double quotes are fine"
u = [[ two square brackets
       is used for
       multi-line strings.]]
t = nil -- undefined t; Lua supports garbage collection.

コピーコード コードは以下の通りです。
-- keywords like do/end mark up the block.
while num < 50 do
  num = num + 1 -- without the ++ or += operator.
end

コピーコード コードは以下の通りです。
-- If statement.
if num > 40 then
  print('over 40')
elseif s ~= 'walternate' then -- ~= means not equal.
  -- Like Python, == means equal; applies to strings.
  io.write('not over 40\n') -- default output to stdout.
else
  -- The default variables are all global.

コピーコード コードは以下の通りです。
  thisIsGlobal = 5 -- the variable name is usually defined in camelback style.

コピーコード コードは以下の通りです。
  -- How to define local variables.
  local line = io.read() -- Read the next line of stdin.

コピーコード コードは以下の通りです。
  -- ... operator is used to concatenate strings.
  print('Winter is coming, ' ... line)
end

コピーコード コードは以下の通りです。
-- Undefined variables return nil.
-- This does not error out.
foo = anUnknownVariable -- now foo = nil.

コピーコード コードは以下の通りです。
aBoolValue = false

-- Only nil and false are fals; 0 and '' are both true!
if not aBoolValue then print('twas false') end

コピーコード コードは以下の通りです。
-- both 'or' and 'and' are short-circuitable (translator's note: the subsequent conditional expressions are not counted if they are sufficient for a conditional judgment).
-- Similar to the a?b:c operator in C/js.
ans = aBoolValue and 'yes' or 'no' --> 'no'

コピーコード コードは以下の通りです。
karlSum = 0
for i = 1, 100 do -- range includes both ends
  karlSum = karlSum + i
end

コピーコード コードは以下の通りです。
-- Use "100, 1, -1" to indicate the decreasing range.
fredSum = 0
for j = 100, 1, -1 do fredSum = fredSum + j end

 通常、範囲式はbegin, end[,step]となります。

コピーコード コードは以下の通りです。
-- Another circular expression.
repeat
  print('the way of the future')
  num = num - 1
until num == 0