io.write 每次都打印相同的内容?

标签 io lua

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

基本上,它会询问您是男孩还是女孩,然后相应地打印出您的身份。

尽管如此,我有一个问题,每次运行该程序时,它总是会打印出“你是一个男孩”。

抱歉,如果我是个白痴,我们将不胜感激!

代码如下;

io.write("Hello, are you a boy or a girl?\n")
answer = io.read()
if answer == "boy" or "Boy" then
io.write("Oh, so you're a boy, huh?")
elseif answer == "girl" or "Girl" then
io.write("Oh, so you're a girl, huh?")
else
io.write("Wow, i've never heard of an "..answer.." before!\n")
end

最佳答案

尝试

io.write("Hello, are you a boy or a girl?\n")

answer = io.read()

if answer == "boy" or answer == "Boy" then
  io.write("Oh, so you're a boy, huh?")
elseif answer == "girl" or answer == "Girl" then
  io.write("Oh, so you're a girl, huh?")
else
  io.write("Wow, i've never heard of an "..answer.." before!\n")
end

说明

Docs说:

The disjunction operator or returns its first argument if this value is different from nil and false; otherwise, or returns its second argument.

如果答案==“女孩”的步骤:

  1. 答案==“男孩”或“男孩”
  2. 错误或“男孩”
  3. “男孩”
  4. 字符串被视为 true -> 执行 if

关于io.write 每次都打印相同的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19180689/

相关文章:

c - 将具有整数值的 double 值转换为整数时,是否保证执行 'properly' ?

lua - 如何在 Torch REPL 中更改工作目录

lua - 修改表中具有特定最大值和最小值的数字

class - 为什么我不能制作单独的表格副本?

ruby - 使用 Ruby IO 流重新分配和重新打开之间的区别

java - 将数据输入到输入流中

c - 如何读取文本文件到 C 中的特定位置?

android - 重新加载场景时尝试对字段 'x' 执行算术运算

javascript - 使用 fs.open 和 fs.write 专门写入一个文件

bash - 在 bash 脚本中,是否可以将由后台进程计算的值分配给变量?