Løkker

Spenner

> LeekScript-veiledning

Før eller senere, når du begynner å kode, må du gjenta den samme instruksjonen flere ganger:

var enemy = getNearestEnemy();

brukVåpen(fiende); brukVåpen(fiende); brukVåpen(fiende); brukVåpen(fiende);

Dette er kanskje ikke noe problem når det gjelder å skyte 3-4 ganger, men når du vil gjøre mer avanserte algoritmer, må du sannsynligvis gjenta instruksjoner flere dusin ganger, eller til og med et antall variable ganger, som da ikke kan gjøres på denne måten. Det er her løkker kommer inn i bildet. En sløyfe er et kodeelement som gjør det mulig å gjenta en sekvens av instruksjoner så mange ganger som nødvendig. Hver gang koden i en løkke gjentas, snakker vi om iterasjon.

var enemy = getNearestEnemy();

for(var i = 0; i < 4; i++) { brukVåpen(fiende); } //det er straks penere :)

Avhengig av hva du vil gjøre, er det flere typer løkker som vi vil se nedenfor: "for", "while", "do while", "foreach" løkker. Det er sannsynligvis mange forskjellige løkker, og navnet deres kan virke barbarisk, men hver har en spesiell bruk, som vi vil se nedenfor.

mens loop

Denne løkken er den enkleste av alle. Mens betyr "Så lenge... Gjør...", denne sløyfen gjør det mulig å gjenta en sekvens med instruksjoner så lenge en gitt tilstand er verifisert. Tilstanden og instruksjonen kan være alt og alt, for eksempel: snakke mens jeg har handlingspunkter, gå fremover mens jeg har bevegelsespunkter, ...

Syntaksen er som følger:

while(tilstand) { bruksanvisning; }

Selvfølgelig bør "tilstand" og "instruksjoner" erstattes med det som er nødvendig.

Gjør-mens-løkke

Denne løkken er faktisk veldig lik while-løkken som er sett tidligere, bortsett fra at den utfører instruksjonene minst én gang før tilstanden testes. Hvis en while-løkke kunne oversettes til "Så lenge som... Gjør...", vil gjøre-mens-løkken heller bli oversatt som "Gjør... Så lenge..."

Syntaksen er ganske lik den til while-løkken, men oversetter godt nyanser mellom de to:

gjør {// først utfører vi instruksjonene bruksanvisning; }while(condition);//så ser vi på betingelsen

for loop

For-løkken brukes først og fremst til å bruke en teller. Syntaksen er litt mer voluminøs enn de andre loopene, men den gjør det mulig å fremheve de viktige egenskapene til denne.

Syntaksen er:

for(initialisering; tilstand; operasjon) { bruksanvisning; }

Tilstanden fungerer på samme måte som tilstanden til en while-løkke, men to nye elementer har dukket opp: initialiseringen og operasjonen. Disse to elementene gjør det da mulig å lage telleren til løkken (vanligvis er det et spørsmål om å lage eller endre en variabel), og å oppdatere den.

For eksempel, for å skyte tre ganger, kan du gjøre:

var enemy = getNearestEnemy();

for(var teller = 0; teller < 3; teller += 1) { brukVåpen(fiende); }

Vi kan legge merke til at denne koden også kan opprettes med de tidligere løkkene:

var enemy = getNearestEnemy();

var teller = 0; while(teller < 3) { teller += 1; brukVåpen(fiende); }

Men her er telleren og dens inkrement ikke uthevet, noe syntaksen til for-løkken tillater å gjøre.

for hver sløyfe

Denne løkken er litt spesiell: den spesialiserer seg på å krysse elementene i en matrise. I stedet vil det bety "For hvert [matriseelement] Gjør ...".

Den kan brukes på to forskjellige måter, avhengig av behov:

for(var verdi i matrise) { //ved hver iterasjon av løkken, vil verdi være et element i matrisen. bruksanvisning; }

Noen ganger kan det være nødvendig å vite posisjonen til det studerte elementet, den passende syntaksen er da:

for(var posisjon: var verdi i matrise) { //ved hver iterasjon av løkken vil verdi være et element i arrayen og plassere dens posisjon i arrayen, så vi vil ha: array[posisjon] == verdi bruksanvisning; }

For å få listen over effekter en brikke vil ha, kan du for eksempel gjøre:

for(var-effekt i getChipEffects(CHIP_DEVIL_STRIKE)) { if(effekt[0] == EFFEKT_SKADE) say("det gjør vondt"); }

Merk: "posisjon" og "verdi"-variablene kan opprettes før løkken:

var verdi, posisjon; for(posisjon: verdi i matrise) { //ved hver iterasjon av løkken, vil verdi være et element i matrisen. bruksanvisning; }

Du må være forsiktig med denne sløyfen: modifisering av matrisen under kjøringen kan faktisk forårsake irriterende feil i koden din, så dette må unngås så mye som mulig.

Viktig Fra og med versjon 1.17 31. oktober 2020 kan "for (var key: var @value in array)"-syntaksen brukes til å bla