为什么我的 Lua if-else 语句不能正常工作?

print("请输入一个数字:")
firstNum = io.read()
print("请输入另一个数字:")
secondNum = io.read()
print("第一个数字是: " .. firstNum .. "\n第二个数字是: " .. secondNum)
if firstNum > secondNum then
  print("第一个数字比第二个数字大")
elseif firstNum < secondNum then
  print("第一个数字比第二个数字小")
else
  print("第一个数字等于第二个数字")
end

输入:

firstNum = 5

secondNum = 15

输出:

第一个数字比第二个数字大

为什么会出现这种情况?

点赞
用户1188632
用户1188632

firstNumsecondNum是字符串,因为它从仅比较第一个字符开始:'5'>'1'`,所以“5”在字典中排在“15”前面。

在比较之前,您需要将它们转换为数字。

print("请输入一个数字:")
firstNum = tonumber(io.read())
print("请输入另一个数字:")
secondNum = tonumber(io.read())
if firstNum > secondNum then
  print("第一个数比第二个数大")
elseif firstNum < secondNum then
  print("第一个数比第二个数小")
else
  print("第一个数与第二个数相等")
end

这将输出预期的“第一个数比第二个数小”。

2020-07-07 14:47:55