Selles artiklis saate tutvuda pesastatud silmuste ja nende toimimise kohta koos näidetega.
Kui teise silmuse kehas on silmus, nimetatakse seda sisestatud silmuseks. Siin on näide sisestatud sisestatud silmusest.
i jaoks 1… 5 (// j-i välise silmuse avaldised 1… 2-s (// sisemise silmuse avaldused) // externalloop-i avaldused)
Siin for j in 1… 2
loop tuntakse sisemise kontuuri, on kehas for i in 1… 5
tuntakse välimise kontuuri.
Tuleb märkida, et sisestatud silmus ei pruugi sisaldada sama tüüpi silmuseid. Näiteks võite a-silmusekeha sisse panna mõnda aega silmuse ja see on ikkagi pesastatud silmus.
Kiire sisestatud silmus
Pesastatud sisselülitamise silmus sisaldab sisselülitamise tsüklit avaldusena teise sissetuleva silmu sees. Vajadusel võib teil olla suvaline arv pesastatud sisselülitamise silmusid.
Näide 1: Swift Nested for-in Loop
for i in 1… 5 ( print("Outer loop iteration ", i) for j in 1… 2 ( print("Inner loop iteration ", j) print("i = (i); j = (j)") ) )
Programmi käivitamisel on väljund järgmine:
Väliskontuuri iteratsioon 1 Sisekontuuri iteratsioon 1 i = 1; j = 1 sisemise ahela iteratsioon 2 i = 1; j = 2 väliskontuuri iteratsioon 2 sisemise ahela iteratsioon 1 i = 2; j = 1 sisemise ahela iteratsioon 2 i = 2; j = 2 väliskontuuri iteratsioon 3 sisemise ahela iteratsioon 1 i = 3; j = 1 sisemise ahela iteratsioon 2 i = 3; j = 2 väliskontuuri iteratsioon 4 sisemise ahela iteratsioon 1 i = 4; j = 1 sisemise ahela iteratsioon 2 i = 4; j = 2 väliskontuuri iteratsioon 5 sisemise ahela iteratsioon 1 i = 5; j = 1 sisemise ahela iteratsioon 2 i = 5; j = 2
Ülaltoodud programmis kordub välimine silmus 5 korda. Igas välise silmuse iteratsioonis kordub sisemine silmus 2 korda.
Kiire Pesitud aasa ajal
Pesastatud while-silmus sisaldab ajas-silmus lausena teise while-tsükli sees. Vajaduse korral võib teil olla ükskõik mitu arvu silmuseid.
Näide 2: Kiire pesitsetud aasa ajal
var i = 1 while i <= 5 ( print("Outer loop iteration ", i) var j = 1 while j <= 2 ( print("Inner loop iteration ", j) print("i = (i); j = (j)") j += 1 ) i += 1 )
Programmi väljund on sama mis ülaltoodud programmil.
Kiire pesastatud kordus-aas
Pesastatud kordus, samas kui silmus sisaldab korduse korduse silmust kui lauset teise korduse ajalise silmus. Vajaduse korral võib teil olla ükskõik mitu arvu silmuseid.
Näide 3: kiire sisestatud kordus-silmus
var i = 1 repeat ( print("Outer loop iteration ", i) var j = 1 repeat ( print("Inner loop iteration ", j) print("i = (i); j = (j)") j += 1 ) while (j <= 2) i += 1 ) while (i <= 5)
Programmi väljund on sama mis ülaltoodud programmil.
Erinevat tüüpi kiire sisestatud silmus
Sama tüüpi pesastatud silmuseid ei pea olema. Samuti saate luua pesastatud silmuste variatsioone, asetades silmusetüübi muud tüüpi silmuste sisse.
Näide 3: Kiire pesastatud silmus aega ja eest
Allpool olev programm sisaldab erinevat tüüpi pesastatud silmuseid (while ja for-in loop).
var i = 1 while i <= 5 ( print("Outer loop iteration ", i) for j in 1… 2 ( print("Inner loop iteration ", j) print("i = (i); j = (j)") ) i += 1 )
Programmi väljund on sama mis ülaltoodud programmil.
Näide 4: programmeerige Swifti silmustega mustri loomine
Pesastatud silmusid kasutatakse programmeerimisel sageli mustrite loomiseks. Allpool olev programm näitab, kuidas saab pesastatud silmuste abil luua lihtsa mustri.
let rows = 5 for i in 1… rows ( for j in 1… i ( print("(j) ", terminator: "") ) print("") )
Programmi käivitamisel on väljund järgmine:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5