FANDOM


記得認識了這個先吧: 運算符號/字句 Operator

If 如果

基本用法

當該一句子是對的時候才會運作

if condition then
    -- condition正確時執行
end

例子

Code Output
if 2+3 == 5 then 
    print("2+3=5")
end
2+3=5
if 5>2 then
    print("5>2")
end
5>2
if 5<2 then
    print("5<2")
end
if 5==2+3 and 6>3 then
    print("5=2+3 and 6>3")
end
5=2+3 and 6>3
if 5==2+3 and 6<3 then
    print("5=2+3 and 6<3")
end
if 5==2+3 or 6<3 then
    print("5=2+3 or 6<3")
end
5=2+3 or 6<3

|- | <syntaxhighlight lang="lua"> if true then print("True") end </syntaxhighlight>

True
if 5~= 3 then
    print("5~=3")
end
5~=3
if "ABC" then
    print("True")
end
True

Else 否則

當"如果"不正確時, 就會轉入"否則"

Code Output
if 5 == 6 then
    print("5==6")
else
    print("5 不等於 6")
end
5 不等於 6

Elseif 否則如果

一個"如果"不夠,就要"否則如果"

Code Output
local a = 5
local b = 6
if a == b then
    print("Same")
elseif a<b then
    print("A is smaller than B")
end
A is smaller than B

多餘檢查

假設某人想根據玩家的失敗次數(tries)打出不同訊息。

分數 訊息
tries <= 3 "Very good"
3 < tries <= 5 "OK"
tries > 5 "Try again"

第一時間打的可能是

if tries <= 3 then
    print("Very good")
elseif tries > 3 and tries <= 5 then
    print("OK")
elseif tries > 5 then
    print("Try again")
end

但是留意第1和3行。

if tries <= 3 then
elseif tries > 3 and tries <= 5 then

如果真的執行到第3行,第1行的條件肯定為false(如果true的話就不會到第3行)。所以,tries > 3 肯定正確(因為tries <= 3 肯定錯誤),不用再檢查,直接寫成

elseif tries <= 5 then

再留意第5行。

elseif tries > 5 then

同樣道理,到了第5行,第1和3行的條件肯定為false,所以tries一定大於5,可以直接寫成

else

更改後

if tries <= 3 then
    print("Very good")
elseif tries <= 5 then
    print("OK")
else
    print("Try again")
end

大道理:使用elseif時,上面檢查過的條件肯定為false,可以直接省去。

小遊戲

1. 以下script的output是?

local a = false
if a then
print("Yes")
else
print("No")
end
答案 原因
No a 是 False

2. 以下script的output是?

local a = 5
local b = '5'
if a==b then
print("Equal")
else
print("Not Same")
end
答案 原因
Not Same '5' 不等於 5

3. 以下script的output是?

local i=0
local j = 2
local k = i
local z = 12
if (i == 0 and (j == 7 or (k > 0 or (z % 3 == 0 and not(j + 2 * 12 > i)then
print("YES")
else
print("No")
end
答案 原因
No

4. 以下script的output是?

local i = 0
if i == 0 
print("end")
end
答案 原因
ERROR 漏咗 then

學習更多

Roblox Studio Scripting 教學

Roblox 更新/教學 Facebook