Swift while e repeat while Loop (con esempi)

In questo articolo imparerai a creare cicli while e a ripetere … while nella programmazione Swift.

Nell'articolo precedente, abbiamo appreso del ciclo for-in per eseguire una serie di attività per un certo numero di volte. In questo articolo imparerai a usare whilee repeat… whilecome alternativa al ciclo for-in quando il numero di iterazioni è sconosciuto.

Un ciclo while esegue un insieme di istruzioni finché non diventa una condizione false. Questi tipi di cicli vengono utilizzati al meglio quando il numero di iterazioni non è noto prima dell'inizio della prima iterazione. Swift fornisce due tipi di cicli while:

1. Swift while Loop

Questo ciclo valuta la sua condizione all'inizio di ogni passaggio attraverso il ciclo.

La sintassi del ciclo while è:

 while (TestExpression) ( // statements )

Come funziona il ciclo while?

È TestExpressionun'espressione booleana.

Se TestExpressionviene valutato a true,

  • vengono eseguite le istruzioni all'interno del ciclo while.
  • e il TestExpressionviene rivalutato.

Questo processo continua finché non TestExpressionviene valutato a false. Se TestExpressionrestituisce false, il ciclo while viene terminato.

Diagramma di flusso del ciclo while

Esempio 1: While Loop

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Quando esegui il programma, l'output sarà:

 Hai superato il livello 0 Hai superato il livello 1 Hai superato il livello 2 Hai superato il livello 3 Hai superato il livello 4 Hai superato il livello 5 al di fuori del ciclo while 

Nel programma precedente, le variabili currentLevel e finalLevel vengono inizializzate a 0 e la costante gameCompleted viene inizializzata a true.

In ogni iterazione del ciclo while, controlla la condizione currentLevel <= finalLevel. Se la condizione ritorna true, le istruzioni all'interno del ciclo while vengono eseguite altrimenti il ​​ciclo termina.

Fasi di esecuzione
Iterazione Condizione (currentLevel <= finalLevel) Produzione
1 0 <= 5 (vero) Hai superato il livello 0
2 1 <= 5 (vero) Hai superato il livello 1
3 2 <= 5 (vero) Hai superato il livello 2
4 3 <= 5 (vero) Hai superato il livello 3
5 4 <= 5 (vero) Hai superato il livello 4
6 5 <= 5 (vero) Hai superato il livello 5
7 6 <= 5 (falso) al di fuori del ciclo while

2. Ripeti durante il ciclo

Questo ciclo valuta la sua condizione alla fine di ogni passaggio attraverso il ciclo. La ripetizione… ciclo while è simile al ciclo while con una differenza chiave. Il corpo del ciclo repeat … while viene eseguito una volta prima che l'espressione di test venga controllata.

La sintassi di repeat … while loop è:

 repeat ( // statements… ) while (testExpression)

Come funziona la ripetizione … while loop?

Il corpo del ciclo repeat … while viene eseguito una volta (prima di controllare l'espressione di test). Solo allora viene controllato testExpression.

Se testExpression viene valutato su true, vengono eseguite le istruzioni all'interno del corpo del ciclo e testExpression viene valutato di nuovo. Questo processo continua finché non viene valutato testExpression false.

Quando testExpression è false, il ciclo repeat … while termina.

Diagramma di flusso della ripetizione … durante il ciclo

Esempio 2: Ripeti durante il ciclo

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Quando esegui il programma, l'output sarà:

 Hai superato il livello 0 Hai superato il livello 1 Hai superato il livello 2 Hai superato il livello 3 Hai superato il livello 4 Hai superato il livello 5 al di fuori del ciclo di ripetizione durante 

Nell'esempio precedente, per la prima volta vengono eseguite le istruzioni all'interno del ciclo. E per la successiva iterazione, controlla le condizioni currentLevel <= finalLevel.

Se la condizione ritorna true, le istruzioni all'interno del ciclo while vengono eseguite altrimenti il ​​ciclo termina.

Fasi di esecuzione
Iterazione Condizione (currentLevel <= finalLevel) Produzione
1 0 <= 5 (vero) Hai superato il livello 0
2 1 <= 5 (vero) Hai superato il livello 1
3 2 <= 5 (vero) Hai superato il livello 2
4 3 <= 5 (vero) Hai superato il livello 3
5 4 <= 5 (vero) Hai superato il livello 4
6 5 <= 5 (vero) Hai superato il livello 5
7 6 <= 5 (falso) al di fuori della ripetizione del ciclo

Sebbene entrambi whilee il repeat whileciclo abbiano gli stessi passaggi di esecuzione, la condizione currentLevel <= finalLevel su repeat whileciclo viene eseguita solo dopo aver eseguito le istruzioni al suo interno.

Ma in while, la condizione viene verificata all'inizio prima di eseguire le istruzioni al suo interno.

3. Infinito mentre Loop

Se l'espressione di test non restituisce mai false, il corpo di whileand repeat… whileloop viene eseguito un numero infinito di volte.

Esempio 3: Infinite while Loop

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Quando esegui il programma, l'output sarà:

Ciao mondo! Ciao mondo!…

Quando si esegue il programma, entrambi i cicli eseguono l' print("Hello, World!")istruzione per un numero infinito di volte. Quindi, puoi vedere l'output continuo Hello, World! nella console.

Articoli interessanti...