我正在做一些打高尔夫球的代码,我已经接受了这个:
for i=1,100 do for j=1,i do if i%j<1 then io.write(j.." ") end end print() end
有没有办法让if语句成为内联?所以它被包装到io.write()
中答案 0 :(得分:1)
可以使用and..or
运算符模仿lua中的三元运算:
a and b or c
类似于
a ? b : c
在真实的价值观下。对于你的情况:
for i=1,100 do
for j=1,i do
io.write( ((i % j) < 1 and j.." " or '')
-- (i % j) < 1 and io.write(.." ")
end
print() -- why print here?
end
高尔夫球,它是
io.write(i%j<1 and j.." "or'')
可以节省4个字符