English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift嵌套循环

In questo articolo, imparerai attraverso esempi a conoscere i cicli annidati e il loro modo di funzionare.

Se un ciclo esiste all'interno del corpo di un altro ciclo, si chiama ciclo annidato. Questo è un esempio di ciclo for-in annidato.

for i in 1...5 {
    //Istruzioni del ciclo esterno
    for j in 1...2 {
        //Istruzioni del ciclo interno
    }
    //Istruzioni del ciclo esterno
}

Qui, il ciclo for j in 1...2 è chiamato ciclo interno, situato all'interno del corpo del ciclo for i in 1...5 chiamato ciclo esterno.

Dovrebbe essere notato che i cicli annidati possono non contenere cicli dello stesso tipo. Ad esempio, puoi inserire un ciclo while nel corpo di un ciclo for, ma rimane comunque un ciclo annidato.

Cicli for...in annidati in Swift

AnnidatoCiclo for-inContiene un ciclo for-in come istruzione all'interno di un altro ciclo for-in. Puoi avere un numero illimitato di cicli for-in annidati.

Esempio 1: Cicli for-in annidati in Swift

for i in 1...5 {
    print("外循环迭代 \", i)
    for j in 1...2 {
        print("内循环迭代 \", j)
        print("i = \(i); j = \(j)")
    }
}

运行该程序时,输出为:

Iterazione del ciclo esterno 1
Iterazione del ciclo interno 1
i = 1; j = 1
Iterazione del ciclo interno 2
i = 1; j = 2
Iterazione del ciclo esterno 2
Iterazione del ciclo interno 1
i = 2; j = 1
Iterazione del ciclo interno 2
i = 2; j = 2
Iterazione del ciclo esterno 3
Iterazione del ciclo interno 1
i = 3; j = 1
Iterazione del ciclo interno 2
i = 3; j = 2
Iterazione del ciclo esterno 4
Iterazione del ciclo interno 1
i = 4; j = 1
Iterazione del ciclo interno 2
i = 4; j = 2
Iterazione del ciclo esterno 5
Iterazione del ciclo interno 1
i = 5; j = 1
Iterazione del ciclo interno 2
i = 5; j = 2

Nel programma sopra, il ciclo esterno itera 5 volte. In ogni iterazione del ciclo esterno, il ciclo interno itera 2 volte.

Cicli while annidati in Swift

AnnidatoCiclo whileContiene un ciclo while come istruzione all'interno di un altro ciclo while. Puoi impostare un numero illimitato di cicli while annidati.

Esempio 2: Cicli while annidati in Swift

var i = 1
while i <= 5 {
    print("外循环迭代 \", i)
    var j = 1
    while j <= 2 {
        print("内循环迭代 \", j)
        print("i = \(i); j = \(j)")
        j += 1
    }
    i += 1
}

该程序的输出与上述程序相同。

Ciclo annidato repeat...while in Swift

AnnidatoCiclo repeat while Contiene un ciclo repeat-while come istruzione all'interno di un altro ciclo repeat-while. Puoi impostare un numero illimitato di cicli while annidati.

Esempio 3: Cicli annidati repeat-while in Swift

var i = 1
repeat {
    print("外循环迭代 \", i)
    var j = 1
    repeat {
        print("内循环迭代 \", j)
        print("i = \(i); j = \(j)")
        j += 1
    } while (j <= 2)
    i += 1
} while (i <= 5)

该程序的输出与上述程序相同。

Cicli annidati di tipo diverso in Swift

Non è necessario avere cicli annidati dello stesso tipo. Puoi anche creare varianti di cicli annidati inserendo un tipo di ciclo in un altro tipo di ciclo.

Esempio 3: Cicli annidati while e for in Swift

Il programma seguente contiene diversi tipi di cicli annidati (cicli while e for-in).

var i = 1
while i <= 5 {
    print("外循环迭代 \", i)
    for j in 1...2 {
        print("内循环迭代 \", j)
        print("i = \(i); j = \(j)")
    }
    i += 1
}

该程序的输出与上述程序相同。

示例4:使用Swift循环创建图案的程序

嵌套循环通常用于在编程中创建模式。下面的程序显示了如何使用嵌套循环创建简单的图案。

let rows = 5
for i in 1...rows {
    for j in 1...i {
        print("\(j) \", terminator: ")")
    }
    print("")
}

运行该程序时,输出为:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5