为什么以下 R 代码由于第一个 if 条件后缺少大括号而失败?

Dig*_*ngh 0 syntax if-statement r

以下 R 代码会导致“错误:未找到对象‘test’”。

condition <- 1
if(condition == 0)
if(condition == 1)
{
  test <- "Pass"
}
print(test)
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 if 条件后添加一个大括号,如下所示,那么它就可以正常工作。

condition <- 1
if(condition == 0){}
if(condition == 1)
{
  test <- "Pass"
}
print(test)
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了R 中if 条件的结构,找到了这个页面,其中写着大括号是可选的。那么为什么代码会失败呢?

Kon*_*lph 6

\n

其中写到花括号是可选的

\n
\n

大括号是可选的。但后面需要有一些if表达。所以 R 取它找到的下一个表达式,它恰好是整个后续表达式if表达式。所以你的第一个代码会被解析,就像你写的一样

\n
condition <- 1\nif(condition == 0) {\n    if(condition == 1)\n    {\n      test <- "Pass"\n    }\n}\nprint(test)\n
Run Code Online (Sandbox Code Playgroud)\n

不管怎样,你发现的页面是一个质量很差的资源,我建议你忘记它;事实上,关于可选花括号,它实际上是这样说的:

\n
\n

注意,如果 R 中后面没有 else 条件,大括号是可选的。

\n
\n

是错误的。是否存在else(注意:\xe2\x80\x99s 没有 \xe2\x80\x9celse 条件\xe2\x80\x9d!)与大括号是否可选完全无关。该页面的其余部分质量也同样较差。

\n