Dator > vanliga orsaker till oändliga loopar

  • vanliga orsaker till oändliga loopar


  • En datorprogrammering slinga utför en iterativ process som kör ett visst antal gånger ( n ) . Ställ in en variabel i , känd som loop variant , och utföra ett test som kallas en uppsägning check . Om testet utvärderas till sant, då loopen kommer att upphöra .



    Ett enkelt exempel slinga skriver siffror från 1 till 10. Skapa en jag slinga variant och ange värdet till 1 . På varje iteration i slingan , skriva ut det aktuella värdet av i och inkrement jag med 1 . Uppsägningen kontrollera avslutas loopen om jag är större än 10 i slutet av slingan kroppen .



    i=1

    slinga

    skriver jag

    I=I + 1

    om jag <= 10 då goto loop



    kommer dock ett par vanliga programmeringsfel resultera i oändliga loopar som kan hänga programmet .

    inte ändra Loop Variant

    uppsägning kontrollera förlitar sig på slingan variant jag komma närmare uppsägningen skick . Om slingan variant är konstant och ändras inte , då uppsägning kontrollera alltid misslyckas och loopen kommer att fortsätta på obestämd tid .



    Detta problem kommer också uppstå om öglan varianten är beroende av en oredovisad-för tillstånd . Anta att ditt program skriver ut varje nummer mellan 1 och 5 , sedan 7 , sedan upphör. Din slinga kan se ut på följande sätt:



    i=1

    slinga

    skriver jag

    Om jag <5 I=I + 1 ( steg slingan variant , skriver siffrorna 1 till 5 )

    om jag <= 7 goto loop ( återställer slinga för värden på I mindre än eller lika med 7 )



    I detta loop , när jag når 5 kommer loopen startas utan att någonsin uppräkning och trycka 5 för evigt . Programmet skall innehålla en linje som ändras slingan variant .



    i=1

    slinga

    skriver jag

    om jag <5 I=I + 1 ( steg slingan variant , skriver siffrorna 1 till 5 )

    annanstans I=I + 2 ( steg med 2 när jag når 5 )

    om jag <= 7 goto loop ( återställer loop när jag når 7 )



    Detta slinga kommer att avslutas efter att jag når 7 .

    Återställa Loop Variant

    Du kan ställa in ett kommando i mitten av slingan organ som återställer slingan variant och skapar en oändlig loop . Till exempel :



    slinga

    i=1 ( återställer loop variant 1)

    skriver jag

    i=i + 1

    om jag <5 goto loop



    Detta ställer jag tillbaka till 1 på varje iteration , vilket ger en oändlig loop.

    Ställa in Loop Variant att gå bort från uppsägningen Skick

    slinga varianten måste gå mot uppsägning skick på varje iteration .



    i=1

    slinga

    skriver jag

    Om i=2 då i=i-1

    I=I + 1

    om jag <3 goto loop



    I detta exempel slingan att hänga sig när jag når 2 . Du kan göra denna typ av misstag när man skriver komplicerat slingor som sträng tolkning .

    Inställning av en felaktig uppsägning Skick

    i=1

    slinga

    skriver jag

    i=i + 1

    Om jag> 0 goto loop



    I detta exempel uppsägning skick kommer att orsaka en oändlig loop som jag ökar utan gräns för varje iteration .


Previous:nothing Next:hur man hittar ett datum skillnad i php





Relaterade artiklar


  • Ta bort en nod binära sökträd
  • hur man skapar ett diagram i python
  • hur man kan felsöka ett VBS skript
  • hur man kan spara bilder från picturebox kontroll i Visual Basic
  • hur du aktiverar funktionen print screen med hjälp av JavaScript
  • datakunskap för nybörjare
  • hur man kan inreda rack vägg tallrik
  • hur man kan övervaka nätverkshårdvara
  • hur man hittar filstorleken i php
  • hur du redigerar pdf- filer med hjälp av java