Italian Ciclo For

Fulvio75

Well-Known Member
Licensed User
Ciao a tutti,
ho un ciclo For

Do while leggi = true
For i = 0 to 10

If res = true then i = 5

Next
Loop

Conta da 0 a 10 e se la variabile res è true se i è ad esempio arrivato a 8 deve tornare a 5, perché va avanti a contare e non torna a 5?
Non si può fare in un ciclo For?
 

BlueVision

Active Member
Licensed User
Longtime User
Salve,
Non sono sicuro di aver capito il significato del suo programma. Di norma, anche un ciclo FOR-NEXT dovrebbe essere eseguito fino alla fine. Azzerare o manipolare il contatore del ciclo non è un modo elegante e può portare a problemi. Se spieghi un po' meglio le ragioni di questa costruzione del codice, ci sarà sicuramente una soluzione migliore al tuo problema.
 

Sagenut

Expert
Licensed User
Longtime User
Manipolare un ciclo For sicuramente porta a problemi.
Probabilmente la soluzione è lavorare dentro al ciclo Do Loop ma senza il For suo interno.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
devi trasformare il ciclo For in un altro Do While, ad esempio:
B4X:
Do while leggi = true
    i = 0
    Do While i <= 10
        
        If res = true then i = 5

    Loop
Loop
ovviamente dentro al secondo ciclo while devi aumentare il valore di i con
B4X:
i = i + 1
ma devi capire tu dove farlo
 

Sagenut

Expert
Licensed User
Longtime User
Ma la variabile Leggi...... Dov'è?
Quando viene messa in gioco? ?
 

Fulvio75

Well-Known Member
Licensed User
Esco dal ciclo ed entro in un'altra sub sempre con un ciclo do while all'interno che controlla una variabile di cui ho bisogno il risultato, poi rientra nella sub precedente riattivando il suo ciclo Do While
 

Sagenut

Expert
Licensed User
Longtime User
Per me è un pò complicato da capire così.
Riesci a fare un codice minimo dove metti anche le chiamate alle Sub e i punti dove deve uscire?
Alle sub si farà simulare qualcosa per generare i valori.
Ma almeno vediamo il giro logico della cosa.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…