我在爲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