Lua 我有没有办法修复这个if语句?
我对Lua的编码比较陌生,但我对Python有一点经验。我想尝试一些不同的方法,随机数被滚动,你必须试着猜出数字是什么。如果你做对了,这个项目就结束了,那就是在我空闲时间做一些简单的事情。然而,我遇到了Lua的一个问题,第16行的if语句不起作用Lua 我有没有办法修复这个if语句?,lua,Lua,我对Lua的编码比较陌生,但我对Python有一点经验。我想尝试一些不同的方法,随机数被滚动,你必须试着猜出数字是什么。如果你做对了,这个项目就结束了,那就是在我空闲时间做一些简单的事情。然而,我遇到了Lua的一个问题,第16行的if语句不起作用 打印(“测试”) 打印(---------------------------------------------) 游戏=1 x=数学随机(1,6) 而game==1做什么 x=数学随机(1,6) io.write(“输入一个数字。如果你在骰子上掷那
打印(“测试”)
打印(---------------------------------------------)
游戏=1
x=数学随机(1,6)
而game==1做什么
x=数学随机(1,6)
io.write(“输入一个数字。如果你在骰子上掷那个数字,你就赢了:”)
用户输入=io.read()
打印(“”)
打印(“您选择”。.用户输入)
打印(“”)
打印(x)
如果用户输入==x,则---------------->此行不起作用
打印(“”)
打印(“您滚动了您选择的号码。”)
游戏=2
其他的
打印(“”)
打印(“您没有滚动随机数。”)
打印(---------------------------------------------)
结束
结束
您似乎正在从控制台获取输入并将其存储为字符串。您当前正在将字符串与整数进行比较。这意味着你将永远以错误告终。在这里,我修改了您的代码,使其将输入作为整数而不是字符串,这样语句现在就可以工作了
print("Test")
print("--------------------------------------")
game = 1
x = math.random(1,6)
while game == 1 do
x = math.random(1,6)
io.write("Enter a number. If you roll that number on the dice you win: ")
user_input = io.read("*number")
print(" ")
print("You chose " .. user_input)
print(" ")
print(x)
if user_input == x then
print(" ")
print("You rolled the number you chose.")
game = 2
else
print(" ")
print("You did not roll the random number.")
print("--------------------------------------")
end
end
如果用户输入==x,则将
替换为如果TonNumber(用户输入)==x,则替换为。您应该很清楚,user\u input
是一个字符串,x
是一个数字;Lua中没有隐式类型转换
奖金:
- 如果唯一的参数是字符串或表,则可以在函数调用中删除括号:
f(“a”)
→ <代码>f'a'
要结束循环,只需使用break
,就可以完全去掉game
变量(使用while(true)
)
通常,除非您有特殊理由不这样做,否则请将变量声明为local
。在您的示例中,这适用于x
和user\u输入
,如果不是多余的,也适用于游戏
Lua具有HereDoc语法,因此您可以替换:
打印(“”)
打印(“您没有滚动随机数。”)
打印(---------------------------------------------)
与
打印[[
你没有滚动随机数。
--------------------------------------
]]
math.random(1,6)
返回数字io.read()
返回字符串。数字永远不等于字符串。在比较之前,请使用tostring()
或tonumber()
。您还可以执行打印('\n您没有滚动随机数。\n---------------------------------------)
,删除括号应该是一项简单的操作crime@Nifim,我疲惫的眼睛不同意。可读性很重要stringplus“potato”:mymatch“tato”:totable()
@Nifim,在引号前添加空格,用单引号替换双引号,您(对于人类)的语句比用括号更可读。尽管如此,何时删除括号的决定应该基于语义上的原因,而不是形式上的原因。