每次都打印相同的内容吗?

我对 lua 和编程一般都非常新,目前正在制作一个基本程序,以熟悉 if/else/elseif 和 i/o。

基本上,它会询问你是男孩还是女孩,然后打印出相应的答案。

但是,我的问题是每次运行程序时,它都会打印出你是男孩。

如果我很蠢,请原谅,任何帮助都会被赞赏!

代码如下:

io.write("您好,您是男孩还是女孩?\n")
answer = io.read()
if answer == "boy" or "Boy" then
io.write("哦,你是个男孩,对吧?")
elseif answer == "girl" or "Girl" then
io.write("哦,你是个女孩,对吧?")
else
io.write("哇,我以前从没听说过"..answer.."!\n")
end
点赞
用户284165
用户284165
io.write("Hello, are you a boy or a girl?\n") -- 输出一段问候语

answer = io.read() -- 获取用户输入

if answer == "boy" or answer == "Boy" then -- 如果用户输入的是 boy 或 Boy
  io.write("Oh, so you're a boy, huh?") -- 输出 "原来你是男孩啊?"
elseif answer == "girl" or answer == "Girl" then -- 如果用户输入的是 girl 或 Girl
  io.write("Oh, so you're a girl, huh?") -- 输出 "原来你是女孩啊?"
else -- 否则
  io.write("Wow, i've never heard of an "..answer.." before!\n") -- 输出 "嘿,我从来没听过这个 "..answer.." !"
end

Explanation

Docs 说明:

或(disjunction)运算符 or 如果它的第一个参数不同于 nilfalse,那么返回第一个参数;否则,返回第二个参数。

如果 answer 为 "girl",那么运行的步骤如下:

  1. answer == "boy" or "Boy"
  2. false or "Boy"
  3. "Boy"
  4. 字符串被当作 true 处理 -> 执行 if 语句块。
2013-10-04 12:21:17
用户4323
用户4323

尝试替换这段代码:

if answer == "boy" or "Boy" then

替换成这样:

if answer == "boy" or answer == "Boy" then

其他情况同样需要这样进行替换。

2013-10-04 12:25:36