我在为r的节目里我使用do while循环的格式如下do while循环中的R
for(i in 1:n)
{
repeat
{
#code
if(condition){break}
}
}
我有一个问题,即使在if语句为真,循环得到了条件执行still.Can有人帮我这个
谢谢
我在为r的节目里我使用do while循环的格式如下do while循环中的R
for(i in 1:n)
{
repeat
{
#code
if(condition){break}
}
}
我有一个问题,即使在if语句为真,循环得到了条件执行still.Can有人帮我这个
谢谢
你真的确认的条件,说什么你认为它是什么?
而且,break只会让你脱离“repeat”语句,你仍然会在for循环中。
我同意。该条件必须符合'n'次才能退出外部循环。 – 2010-07-24 05:14:00
我没有关于你的语言的经验,但它接缝到我你正在使用嵌套循环一个循环另一个重复lope内循环。如果是这样,那么我的建议是你可以使用循环与断言。如果你真的想要使用这两个循环,那么你必须使用goto语句来出现for循环。
for(i in 1:n)
{
#code
if(condition){break}
}
repeat
{
#code
if(condition){break}
}
您还可以使用
for(i in 1:n)
{
repeat
{
#code
if(condition){goto label;}
}
}
label:
请看看你的语言goto语句的语法,我不知道你的语言是否支持goto语句与否。但你可以用这种方式处理。
感谢
谢谢heavens R不支持gotoes(http://xkcd.com/292/)。 – mbq 2010-07-24 12:31:00
你的代码的结构是有点怪......为什么你有for
循环,如果你不想通过它循环?
在您的代码i
将被分配1
然后repeat
循环将开始,直到条件得到满足,你break
出来。然后i
将被分配2
,如果你想在break
走出for
循环,这意味着你不需要for
循环在所有的repeat
循环将重新执行等
!
不管怎么说,做它的方式是:
flag = 0
for(i in 1:n)
{
if (flag == 1)
break;
repeat
{
#code
if (condition)
{
flag <- 1
break
}
}
}
虽然,除非你有几个不同的条件,退出repeat
环,其中一些没有设置这个没什么意义flag<-1
你确定你需要两个控制结构吗?
for(i in 1:n)
和
if(condition){break}
那些的第二可以很容易地用,而()命令代替。你可以在while循环中包含if条件和条件。
循环应该起作用。你的代码中有其他地方存在缺陷。 – 2010-07-24 04:42:25