La structure de votre code est un peu étrange ... pourquoi avez-vous la boucle for
si vous ne voulez pas faire une boucle à travers elle?
Dans votre code i
sera attribué 1
alors la boucle repeat
commencera jusqu'à ce que la condition est remplie et vous break
hors de lui. Ensuite i
seront affectés 2
et la boucle repeat
sera réexécuté etc.
Si vous voulez que le break
pour sortir de la boucle for
cela signifie que vous n'avez pas besoin de la boucle for
du tout!
Quoi qu'il en soit, la façon de le faire serait:
flag = 0
for(i in 1:n)
{
if (flag == 1)
break;
repeat
{
#code
if (condition)
{
flag <- 1
break
}
}
}
Bien que cela ne ferait pas de sens que si vous avez plusieurs conditions différentes pour sortir de la boucle repeat
, dont certains ne définissez pas flag<-1
La boucle devrait fonctionner. Vous avez un bug ailleurs dans votre code. –