gpt4 book ai didi

r - 如果 R 中的语句只能有一行?

转载 作者:行者123 更新时间:2023-12-03 13:38:57 25 4
gpt4 key购买 nike

我正在尝试一个带有 if 语句的小代码,虽然它很简单,但我真正困惑的是这里的代码

n<-857
while(n!=1){
if(n<=0)
print("please input a positive integer")
else if(n%%2==0)
n<-n/2
print(n)
else
n<-3*n+1
print(n)
}

正如我们在上面看到的,在 R 中运行此代码时,会出现错误,但是如果我像这样更改 if 语句
if(n<=0)
print("please input a positive integer")
else if(n%%2==0)
n<-n/2
else
n<-3*n+1

没关系,我的问题是我们可以在每个判断下只写一行吗?如果每次判断后我想多做点什么,我该怎么办,就像这个案例,我想改变n的值,但又想显示它,我该怎么办?非常感谢您

最佳答案

准确地说,这不是关于线条,而是关于语句。您可以拥有整个if else一行声明:

> if (TRUE) 1 else 3
[1] 1

一条语句将在行尾结束(如果完成),如果您逐行输入代码,您可以在交互模式下很好地看到:
> if (TRUE) 
+ 1
[1] 1
> else
Fehler: Unerwartete(s) 'else' in "else" # error: unexpected 'else' in "else"
> 3
[1] 3
if可以来表格 if (condition) statementif (condition) statement else other.statement ,如果语句在第 2 行之后完成,解释器假定第一个版本是指 - 在交互模式下,它无法明智地等待 else接下来出现。这在 source 中有所不同d 代码 - 下一行很清楚它是哪种形式。

分号也结束语句:
> if (TRUE) 1; else 3
[1] 1
Fehler: Unerwartete(s) 'else' in " else" # error: unexpected 'else' in "else"

但是在条件的每个分支中只能有一个语句。
> if (TRUE) 1; 2 else 3
[1] 1
Fehler: Unerwartete(s) 'else' in " 2 else" # error: unexpected 'else' in "2 else"

花括号将语句组合在一起,因此它们显示为一个语句。
> if (TRUE) {1; 2} else 3
[1] 2

关于r - 如果 R 中的语句只能有一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com