将else语句放在新行上为什么重要?

时间:2016-07-26 15:08:22

标签: r if-statement

这可能是一个基本问题,但我无法在任何地方找到答案。我被告知要将else语句放在大括号之间,因为' style'仅此而已。

考虑以下示例。假设我们有10个学生,每个学生都有1到10之间的考试成绩。5.5或更高是通过,否则失败。

set.seed(123)
student <- 1:10
marks <- round(runif(10, 1, 10), digits = 1)
df <- data.frame(student, marks)

第一个学生得了3.6,所以他没有通过考试。如果我执行以下操作:

if (df$marks[1] >= 5.5)
{
  result <- "Pass"
}
else
{
  result <- "Fail"
}

我收到错误:

  

错误:意外&#39;否则&#39; in&#34; else&#34;

以下作品:

if (df$marks[1] >= 5.5)
{
  result <- "Pass"
}else{
  result <- "Fail"
}

所以我想,如果我不将else放在同一行,代码会认为if语句已经结束,因此不知道如何处理else

但是,我想知道为什么以下有效:

for (i in 1:nrow(df))
{
  if(df$marks[i] >= 5.5)
  {
    df$result[i] <- "Pass"
  }
  else
  {
    df$result[i] <- "Fail"
  }
}

有人可以告诉我为什么else语句不能在for循环之外的新行开始,但它可以在内部吗?我总是}else{因为我确信它总能奏效,但我希望有人能满足我的好奇心。

0 个答案:

没有答案