English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, imparerai a creare cicli while e repeat...while nel linguaggio di programmazione Swift.
Nell'articolo precedente, abbiamo appresoCiclo for-inEsegui un insieme di compiti una certa numero di volte. In questo articolo, imparerai a utilizzare while e repeat..while come sostituti del ciclo for-in quando il numero di iterazioni è sconosciuto.
Il ciclo while esegue un insieme di istruzioni fino a quando la condizione non diventa false. È meglio usare questo tipo di ciclo quando si conosce il numero di iterazioni prima dell'inizio della prima iterazione. Swift fornisce due tipi di cicli while: }}
Questo ciclo valuta la sua condizione all'inizio di ogni iterazione del ciclo.
La sintassi del ciclo while è:
while (TestExpression) { // istruzioni }
TestExpression è un'espressione booleana.
Se TestExpression viene calcolato come true,
Le istruzioni all'interno del ciclo while verranno eseguite.
E TestExpression viene calcolato di nuovo.
Continua a fare questo processo fino a che TestExpression non viene calcolato come false. Se il risultato di TestExpression è false, il ciclo while termina.
var currentLevel: Int = 0, finalLevel: Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) { //Gioca al gioco if (gameCompleted) { print("Hai superato il livello \(currentLevel)") currentLevel += 1 } } print("Al di fuori del ciclo while")
运行该程序时,输出为:
print("Al di fuori del ciclo repeat while") 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 Al di fuori del ciclo while
Nei programmi precedenti, le variabili currentLevel e finalLevel sono inizializzate a 0 e la costante gameCompleted è inizializzata a true.
In ogni iterazione del ciclo while, viene verificata la condizione di giudizio currentLevel <= finalLevel. Se la condizione restituisce true, si continua a eseguire le istruzioni all'interno del ciclo while; altrimenti, il ciclo termina.
Iterazione | Condizione (currentLevel <= finalLevel) | Output |
---|---|---|
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 |
Questo ciclo valuta la sua condizione alla fine di ogni iterazione. Il ciclo repeat ... while è simile al ciclo while, ma c'è una differenza chiave. Prima di verificare l'espressione di test calcolata (testExpression), viene eseguito l'oggetto del ciclo repeat ... while.
La sintassi del ciclo repeat..while è:
repeat { // espressioni ... }
L'oggetto del ciclo repeat ... while viene eseguito una volta (prima di verificare l'espressione di test). Solo così, l'espressione di test viene controllata.
Se testExpression viene calcolato come true, viene eseguito lo statement all'interno del ciclo, quindi viene nuovamente calcolato testExpression. Questo continua fino a quando testExpression viene calcolato come false.
Quando testExpression è false, il ciclo repeat... while termina.
var currentLevel: Int = 0, finalLevel: Int = 5 let gameCompleted = true repeat { //Gioca al gioco if (gameCompleted) { print("Hai superato il livello \(currentLevel)") currentLevel += 1 } while (currentLevel <= finalLevel) }
运行该程序时,输出为:
print("Al di fuori del ciclo repeat while") 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 repeat while
Nel esempio sopra, le istruzioni nel ciclo vengono eseguite per la prima volta. Per la prossima iterazione, verifica la condizione currentLevel <= finalLevel.
Iterazione | Condizione (currentLevel <= finalLevel) | Output |
---|---|---|
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 repeat while |
Nonostante il ciclo repeat e il ciclo repeat while abbiano gli stessi passaggi di esecuzione, la condizione currentLevel <= finalLevel nel ciclo repeat... while viene calcolata solo dopo l'esecuzione delle istruzioni al suo interno.
但是在中while,currentLevel <= finalLevel条件是在开始执行条件之前先检查的。
如果测试表达式永远不会计算为false,则while的主体和repeat..while循环被执行无数次。
while (true) { print(“Hello, World!”) }
repeat { print(“Hello, World!”) } while (true)
运行该程序时,输出为:
Hello, World! Hello, World! . . .
当您运行程序时,两个循环都将无限次执行语句print(“Hello, World!”)。因此,您可以在控制台中看到连续的输出。