Ho un programma in R in cui sto usando do while loop nel seguente formato
for(i in 1:n)
{
repeat
{
#code
if(condition){break}
}
}
Ho un problema anche se la condizione in istruzione if è vera il ciclo è stato eseguito ancora. Nessuno mi può aiutare con questo
Grazie
risposte:
1 per risposta № 1Sei assolutamente sicuro che la condizione sta dicendo quello che pensi che sia?
Inoltre, la pausa ti porta fuori dall'istruzione "repeat", sarai ancora all'interno del ciclo.
1 per risposta № 2
La struttura del tuo codice è un po 'strana ... perché hai il for
loop se non vuoi passarci sopra?
Nel tuo codice i
sarà assegnato 1
poi il repeat
il ciclo inizierà finché la condizione non sarà soddisfatta e tu break
fuori di esso. Poi i
sarà assegnato 2
e il repeat
il loop verrà rieseguito, ecc.
Se vuoi il break
uscire dal for
loop che significa che non hai bisogno del for
loop a tutti!
Ad ogni modo, il modo per farlo sarebbe:
flag = 0
for(i in 1:n)
{
if (flag == 1)
break;
repeat
{
#code
if (condition)
{
flag <- 1
break
}
}
}
Anche se questo non avrebbe senso se non si hanno diverse condizioni per uscire dal repeat
loop, alcuni dei quali non impostati flag<-1
0 per risposta № 3
Non ho esperienza nella tua lingua, ma è cosìmi sembra che tu stia usando il ciclo annidato uno è per il ciclo, un altro è ripetuto per il loop. Se è così allora il mio suggerimento è Puoi usare il ciclo con l'istruzione break. Se vuoi veramente usare entrambi i loop, devi usare l'istruzione goto per uscire dal ciclo for.
for(i in 1:n)
{
#code
if(condition){break}
}
repeat
{
#code
if(condition){break}
}
Puoi anche usare
for(i in 1:n)
{
repeat
{
#code
if(condition){goto label;}
}
}
label:
Si prega di guardare la sintassi della dichiarazione goto della propria lingua, non so se la vostra lingua supporta o meno la dichiarazione goto, ma potete gestirla in questo modo.
Grazie
0 per risposta № 4
Sei sicuro di aver bisogno di entrambe le strutture di controllo qui sotto?
for(i in 1:n)
e
if(condition){break}
Il secondo di questi potrebbe essere facilmente sostituito con un comando while (). È possibile includere sia la condizione if che la condizione i <= n all'interno del ciclo while.