Skillnad mellan för och medan slinga

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 10 Maj 2024
Anonim
Skillnad mellan för och medan slinga - Teknologi
Skillnad mellan för och medan slinga - Teknologi

Innehåll


I C ++ och Java tillåter iterationssatserna, för loop, medan loop och do-while-loop, att uppsättningen av instruktioner körs upprepade gånger tills villkoret är sant och upphör så snart villkoret blir falskt. Förhållanden i iterationssatser kan fördefinieras som i för loop eller öppet som i while loop.

Det finns flera "för" -slingvarianter i C ++ antyds för att öka dess användbarhet, kraft och flexibilitet. Till exempel tillåter for-loopen oss att använda mer än en variabel inuti slingan för att kontrollera den, och användningen av konvergeringsfunktion med 'för' -slingan. Omvänt, med medan loopen kan vi inte använda många varianter, som måste användas med standardsyntaxen.

Det finns några stora skillnader mellan slingor för och medan, som förklaras ytterligare med hjälp av ett jämförelsediagram.


  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseför medan
Deklarationför (initialisering; villkor; iteration) {
// body of for loop
}
medan (villkor) {
uttalanden; // kroppen av slingan
}
FormateraInitialisering, tillståndskontroll, iterationssats skrivs högst upp på slingan.Endast initialisering och tillståndskontroll utförs högst upp på slingan.
Använda sig avFor-loop användes bara när vi redan visste antalet iterationer.Samtidigt slingan används bara när antalet iterationer inte är exakt kända.
SkickOm villkoret inte sätts upp för slinga, itererar loopen oändliga gånger.Om villkoret inte sätts i medan slingan ger det kompilationsfel.
initieringI för slinga upprepas aldrig den initialiserade initieringen.I while loop om initialisering sker under tillståndskontroll, görs initialisering varje gång loopen itererar.
Iteration uttalandeI för loop-iterationsuttalande skrivs överst, körs följaktligen endast efter att alla uttalanden i loopen har utförts.I medan-loopen kan iterationsuttalandet skrivas var som helst i slingan.


Definition av för loop

I Java finns det två former av för slingor. Den första formen är "traditionell" form och den andra är "för varje" form.

Syntax

Den allmänna formen för traditionell för loop-uttalande.

för (initialisering; villkor; iteration) {// body of for loop}

  • initiering - Initieringen av slingkontrollvariabeln för slingan utförs endast en gång under den första iterationen av slingan. Här initialiseras slingkontrollvariabeln, ibland om slingvariabeln inte används igen någonstans i programmet och endast används som styrningsvariabel för slingan, deklareras och initieras både i slingan "för".
  • Skick - Villkoret för "för" -slingan körs varje gång slingan itereras.
  • Ökning och iteration- Iterationssatsen är ett uttryck som ökar eller minskar slingkontrollvariabeln.

Närhelst slingan exekveras exekveras först initialiseringsvillkoret; då kontrolleras tillståndet. Om villkoret är uppfyllt, körs slingans kropp, och iterationsmeddelandet utförs. Återigen kontrolleras villkoret för att veta om slingan kommer att iterera ytterligare eller avslutas.

I Java kan initialiseringsförklaringen och iterationssatsen innehålla mer än ett uttalande. Varje uttalande separeras av ett annat med ett komma, i Java, ett komma är en separator medan "komma" är i C ++ en operatör som kan användas i valfritt uttryck.

för varje slinga och dess syntax

Formen ”för varje” är en förbättrad slinga. Den allmänna formen för varje slinga är som följer.

för (typ iter_variable: collection) uttalande-block

Här anger "typen" typen av iterationsvariabel, följt av iterationsvariabeln. Iterationsvariabeln får elementet från samlingsvariabeln. Typen måste vara densamma som typen av element lagrade i samlingsvariabeln. Formen för för slinga automatiserar upprepningen av slingan från början till slut åtkomst till värden i sekvensiell ordning.

Exempel

Det finns olika typer av samlingar som används för slinga. Låt oss diskutera det med en matris som en samling.

public class Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int add = 0; för (int c: array) {System.out.ln ("värde i c" + c); lägg till = lägg till + c; } System.out.ln ("tillsats av arrayelement är" + lägg till); }} // utgångsvärde i c 10 värde i c 20 värde i c 30 värde i c 40 värde i c 50 värde i c 60 tillsats av arrayelement är 210

Här är 'c' en iterationsvariabel; den tar emot värdena från matrisen, en i taget, från det lägsta indexet till det högsta indexet i arrayen. Här upprepas öglan tills alla element i matrisen undersöks. Det är möjligt att avsluta slingan däremellan genom att använda “break”. Förändringen i iterationsvariabeln påverkar emellertid inte matrisen, eftersom den endast är en skrivskyddad variabel.

Definition av while loop

De medan loop är den mest grundläggande slingan som finns i C ++ och Java. Arbetet med en stundslinga liknar både C ++ och Java.

Syntax

Förklaringen om en stundslinga är som följer

medan (villkor) {uttalanden; // body of loop}

Tidslingan kontrollerar initialt tillståndet och kör sedan uttalningarna tills villkoret i medan slingan visar sig vara sant. Villkoret i medan-loopen kan vara vilket som helst booleskt uttryck. När ett uttryck returnerar något värde som inte är noll, är villkoret sant, och om uttrycket returnerar ett nollvärde blir villkoret falskt.

Om villkoret blir sant, itererar loopen sig själv, och om villkoret blir falskt, övergår kontrollen till nästa rad i koden omedelbart följt av slingan. Uttalningarna eller kroppslingan kan antingen vara ett tomt uttalande eller ett enda uttalande eller ett block med uttalanden.

Exempel

Låt oss diskutera arbetet med en stundslinga. I exemplet nedan kommer koden från 1 till 10.

// exempel finns i Java. public class Main {public static void main (String args) {int n = 0; medan (n <10) {n ++; System.out.ln ("n =" + n); }}} // utgång n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Här är det ursprungliga värdet för 'n' 0, vilket gör att villkoret i medan slingan är sant. Kontrollen kommer sedan in i kroppen på stundslingan och värdet på 'n' ökas enligt det första påståendet i kroppen på en stundslinga. Värdet på 'n' redigeras, sedan går kontrollen tillbaka till villkoret i en stundslinga, nu är värdet på 'n' 1 som återigen uppfyller villkoret och slingans kropp körs igen. Detta fortsätter tills villkoret är sant, så snart villkoret blir falskt avslutas slingan.

Liksom "för" -slingan kan loopen "medan" också initialisera kontrollvariabeln överst på slingan, dvs under tillståndskontroll.

// till exempel medan ((ch = getchar ())! = A) {System.out.ln ("Inmatningsalfabetet" + ch); }

Här initialiseras kontrollvariabeln 'ch' och slingans tillstånd verifieras längst upp på slingan.

Notera:

Kan det vara en för-slinga eller en stund-slinga, om det bara finns ett uttalande i slingans kropp, krävs inte de lockiga hängslen i det tillståndet.

  1. I för loop, initialisering, tillståndskontroll och ökning eller minskning av iterationsvariabeln görs uttryckligen endast i syntaxen för en loop. I motsats till, i medan loop kan vi bara initialisera och kontrollera tillstånd i syntaxen för loopen.
  2. När vi är medvetna om antalet iterationer som måste uppstå vid en körning av en slinga, så använder vi för slinga. Å andra sidan, om vi inte är medvetna om antalet iterationer som måste uppstå i en slinga, så använder vi medan slinga.
  3. Om du inte lägger in villkorsbeskrivning för slinga, kommer det att leda till en oändlig iteration av en slinga. Däremot, om du misslyckas med att lägga tillstånd uttalande i medan loop kommer det att leda till ett kompileringsfel.
  4. Initieringsförklaringen i syntaxen av för loop körs endast en gång i början av slingan. Omvänt, om medan loop bär initieringsmeddelande i sin syntax, sedan initierar uttalandet i medan-slingan varje gång slingan upprepas.
  5. Iterationsuttalandet i för loop kommer att köras efter att kroppen har genomfört loopen. Tvärtom, iterationsuttalandet kan skrivas var som helst i kroppen medan loop så, det kan finnas några uttalanden som körs efter genomförandet av iterationsuttalande i kroppen av while loop.

Slutsats:

For-loopen och medan-loopen är båda iterationssatser, men båda har sin distinkta funktion. For-loop har alla sina deklarationer (initialisering, villkor, iteration) längst upp på slingans kropp. I negativa fall, medan loop endast initialisering och tillstånd är på toppen av kroppen av loopen och iteration kan skrivas var som helst i kroppen av loopen.