我在尝试一个用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的值,又想显示它,我该怎么办?非常感谢
6条答案
按热度按时间dpiehjr41#
准确地说,这不是关于行,而是关于 * 语句 *。您可以在一行中包含整个
if else
语句:一个语句将在行尾结束(如果完成),你可以很好地在交互模式下看到,如果你逐行输入代码:
if
可以以if (condition) statement
或if (condition) statement else other.statement
的形式出现,如果语句在第2行之后完成,解释器会假设第一个版本是指-在交互模式下,它不能明智地等待else
是否出现。这在source
d代码中是不同的-下一行很清楚它是哪种形式。分号结束语句也是:
但是在条件的每个分支中只能有一个 * 语句 *。
大括号将语句分组,使它们显示为一个语句。
q35jwt9p2#
要对语句进行分组,请使用花括号将它们括起来,就像您对
while
循环所做的那样:这将允许您在
if
、else if
和最后的else
中放置多个语句。cxfofazt3#
您必须使用
{}
来允许if
语句有多行。试试这个:nbysray54#
而直接的答案是,正如已经指出的,使用花括号;
值得补充的是,您可以将
<-
赋值运算符集成到许多函数中。在您的具体案例中:
注意,在这里使用
=
将 * 不 * 工作。必须是<-
nqwrtyyt5#
olqngx596#
听说过卷发棒吗?