Domanda

Mi sono imbattuto in una situazione strana, ecco cosa succede.Sto usando a do while loop ed esegue una funzione while ancora una volta dopo il freno.
Ecco una versione semplificata di ciò che accade:

int i = 0;
do{
if(i>=1) break;
}while(i++);

E dopo questo i il valore è 2.Sono solo curioso di sapere se è così che dovrebbe essere o ho semplicemente commesso un errore da qualche parte nella mia versione più copmlex di questo codice?
Questa è una soluzione semplice per questo, devo solo assegnare a per dire an iTemp variabile all'inizio del wgile e usa quella invece di i.

PSNe stavo usando due do while si avvolge uno dentro l'altro forse è questo che lo ha causato?

MODIFICARE:Forza gente, datemi tregua, era un errore di battitura.:D

È stato utile?

Soluzione

PSStavo usando due loop while uno dentro l'altro, forse è questo che lo ha causato?

Potrebbe benissimo essere.UN break (nota l'ortografia) uscirà solo da uno loop, quindi se fosse all'interno del loop interno, uscirebbe da quel loop, ma continuerebbe l'esecuzione immediatamente dopo la fine del loop interno.Nel caso (abbastanza comune) del ciclo esterno che termina immediatamente dopo quello interno, finiresti per eseguire nuovamente la condizione del ciclo esterno.

Altri suggerimenti

brake non è una parola chiave e la tua versione modificata non viene nemmeno compilata.La vecchia versione viene invece eseguita, cioè senza la nuova interruzione.

Soluzione:Utilizzo break.


aggiornamento:

PSStavo usando due loop while uno dentro l'altro, forse è questo che lo ha causato?

SÌ. break esce solo dal ciclo più interno in cui è scritto.

A proposito, mi rendo conto che il ciclo visualizzato verrà eseguito sempre e solo una volta.La tua condizione di loop è i++, che incrementa i e ti dà il valore Prima l'incremento.Prima del primo incremento, i È 0, quindi la tua condizione di loop è 0 alla prima esecuzione, pertanto, viene eseguito una volta.

controllalo break non brake?

int i = 0;
do
{    
 if(i>=1) 
    break;
}while(i++);

la condizione di looping e le condizioni di beaking lo sono impensabile."scusa se sembro scortese"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top