I dag vil vi se flytkontrollstrukturer, også kalt ganske enkelt kontrollstrukturer eller spesielt iterative strukturer. Disse instruksjonene er veldig interessante og brukes når de utvikler konseptet fra program til intelligent program.
Hvorfor?
Hvis vi ikke bruker flytkontrollstrukturene, er et program enkelt. Det er et program som i utgangspunktet bare bruker variabler og operatører i det vi kan kalle en sekvens av instruksjoner i lineær tid, det vil si etter hverandre.
Ved å introdusere strukturene som vi vil se nedenfor, slutter programmet vårt å være en ren lineær sekvens av ineffektive instruksjoner for å bli et program som er i stand til å ta beslutninger avhengig av verdien av variablene det håndterer, derfor kalles de "intelligente" .
De iterative strukturer de kalles så fordi instruksjonene som skal utføres kan gjentas en eller flere ganger. Det er et stort utvalg av typer iterative strukturer med deres særegenheter, men alle har noe til felles, de har et enkelt inngangspunkt, det vil si at de aktiveres når du legger inn data.
Nå får vi se forskjellige typer iterative strukturer i JavaScriptSelv om det i virkeligheten er i alle eller nesten alle programmeringsspråk det i utgangspunktet er de samme strukturene og tjener de samme formålene, er forskjellen måten de skrives på, det vil si syntaksen.
Vi starter med den iterative strukturen, som kanskje er den enkleste og også den mest brukte. Vi mener strukturen hvis.
IF strukturJeg sier at det er det enkleste siden introduksjonen av informasjonen og etter å ha bekreftet det, hva programmet vårt gjør er at hvis den forhåndsbestemte betingelsen er oppfylt, utfører vi setningen eller setningene du har forhåndsdefinert i koden. På den annen side, hvis denne betingelsen ikke er oppfylt, forlater den strukturen og utfører ikke koden som følger med den.
Et eksempel med Javascript -kode er følgende:
Hvis (x) {alert ("Verdien er sann"); }Så enkelt som det. Det eneste vi sier er at hvis variabelen vi skriver inn (x) er sann, skriver du "Verdien er sann", og hvis den ikke er sann, så ikke skriv noe. Det kan også uttrykkes med If (x == true) det er veldig viktig å ikke forveksle == operatoren som sammenligner begge verdiene med = Det den gjør er å tildele verdien til venstre verdien til høyre.
Denne strukturen i seg selv brukes til å validere enhver form for informasjon som legges inn på en veldig tilbakevendende måte, men den blir vanligvis ledsaget av en annen struktur kalt ellers.
Else brukes som et supplement til hvis siden betingelsen som er etablert av if ikke er oppfylt og den fortsetter med annet, blir setningen eller uttalelsene knyttet til kontrollstrukturen automatisk utført som det kan sees i følgende eksempel:
Hvis (x) {alert ("Verdien er sann"); } else {alert ("Verdien er usann"); }Som i forrige eksempel, hvis dataene som er angitt, x, er sanne, skriver du "Verdien er sann." Forskjellen med det forrige eksemplet der hvis x ikke var sant det ikke gjorde noe, er at nå som det går til annet, skriver det direkte "Verdien er usann".
Dette er veldig nyttig hvis informasjonen bare kan være sann eller usann, svart eller hvit, ja eller nei, eller en annen binær kombinasjon, eller den ene eller den andre. Imidlertid er det vanligvis tilfelle der vi vil vite om dataene vi legger inn, oppfyller noen av flere betingelser som er eksklusiveFor eksempel hvis vi vil vite om spilleren vår er en forsvarer, midtbanespiller, keeper eller spiss. Det vil alltid bare være en av de fire tingene, og her fungerer ikke det med hvis og annet for oss.
I dette tilfellet kan vi bruke annet hvis struktur hva betyr det hvis ikke. Vi kan bruke alt det andre hvis vi alltid vil etter vår første if -struktur og før den siste, noe som vil være annet, som vi kan se i følgende kode:
If (spiller == keeper) {alert ("Spilleren er keeper"); } annet hvis (spiller == forsvar) {alert ("Spilleren er forsvar"); } annet hvis (spiller == midtbanespiller) {alert ("Spilleren er en midtbanespiller"); } else {alert ("Spilleren er fremover"); }På denne måten sjekker programmet først om det er en keeper. Hvis det er det, skriver det det, hvis det ikke går til det første hvis du vil kontrollere om det er forsvar. Hvis det er det, skriv det ned. Hvis han ikke er det, går han til neste blokk for å sjekke om han er en midtbanespiller. Hvis det er det, skriv det ned. Hvis det ikke er noen av de tre alternativene, går det inn i den siste blokken.
Strukturene som vi nettopp har sett, ender ikke opp med å bli effektive hvis kontrollene er veldig repeterende, i så fall andre kontrollstrukturer som f.eks. samtidig som eller gjør mens for:
WILE sløyfeDenne strukturen er det som er kjent som mens (som er den bokstavelige oversettelsen fra engelsk) innen algoritme. Og som sin egen mening sier det er en løkke som utfører instruksjonene samtidig som betingelsen eller betingelsene forblir sanne, så lenge den fortsetter å returnere "sann" som en verdi.
derfor struktur av sløyfen er veldig enkel:
mens (tilstand)
{
bruksanvisning;
}
EN enkelt eksempel i JavaScript det kan være følgende:
var teller = 1; mens (num <5) {alert ("num"); num + = 1; }Dette er så enkelt som å legge en om gangen til variabelen vår til den når 5.
Hva skjer hvis betingelsen ikke er oppfylt før du går inn i løkken?
At løkken aldri vil løpe. Og her kommer vi til en spesiell type mens -loop som heter gjør mens. Denne strukturen brukes hvis vi vil at programmet skal gå inn i løkken minst én gang. Den bokstavelige oversettelsen er gjør … så lenge den gjør det minst én gang, skriv inn løkken.
Hvorfor kommer det alltid inn i løkken vår minst én gang?
Fordi som vi vil se nedenfor, er betingelsen for å utføre løkken gjort etter at du har gjort det. Det kan høres komplisert ut, men vi vil se at det er veldig enkelt:
var fakta = 1; var num = 10; gjør {fact = num * fact; num--; } mens (num> 0); varsling (num);Det ville være eksemplet.
Hva skjer i dette eksemplet?
Det går først inn i løkken og gir to instruksjoner, multipliserer resultatet med tallet og reduserer deretter tallet. Denne prosessen gjentar det til tallet vårt er 1. Når du går ut av sløyfen, skriver du tallet som opprinnelig var 10 og nå er 1.
Denne sløyfen kan da skrives nøyaktig det samme med mens. På den annen side, hvis i initialiseringen var num = 0; går inn i løkken, gjør instruksjonene og num forblir med verdien -1, noe som ikke ville skje med mens siden det ikke ville komme inn i løkken, og på denne måten har det gjort det en gang.
Dette er åpenbart et veldig enkelt eksempel med liten bruk, men når du programmerer er det veldig interessant hvis vi vil at en meny skal vises minst en gang.
Etter å ha sett mens og gjøre mens loop, skal vi se hva jeg synes er mest brukt i programmering. Vi snakker om den berømte sløyfen til.
FOR strukturDet er den mest brukte løkken for effektiviteten, selv om den er mer kompleks enn de tidligere iterative strukturene.
Den har følgende form:
for (rekkefølge på initialisering; betingelse; bestilling av Oppdater)
{
Instruksjoner for å utføre
}
Og hans operasjonen er veldig enkel:
I den første delen av sløyfen initialiseres en eller flere variabler, det vil si at de får en verdi. Etter det første semikolonet er betingelsen som må være oppfylt for å utføre instruksjonene definert. Og den siste delen av parentesen, oppdateringen, er verdien som vil bli tilordnet variablene som er initialisert.
Veldig enkelt, så lenge den angitte betingelsen er oppfylt, blir instruksjonene inne i for -løkken utført. Etter å ha utført den, oppdaterer vi verdien av variablene som brukes i tilstanden.
Nå skal vi se et eksempel skrevet inn Javascript:
for (i = 0; i <10; i ++) {alert ("Det er fortsatt mindre enn 10"); }Vi har opprettet og initialisert variabelen i med verdien 0. Det er viktig å huske på at denne delen av løkken bare utføres første gang, resten av gangene tar den ikke hensyn til den siden den bare initialiseres en gang . Tilstandssonen vår er så lenge i er mindre enn 10, og derfor vil løkken vår gjenta til jeg ikke lenger er mindre enn 10.
Det er nå oppgraderingssonen spiller inn. Hvis verdien av i ikke ble endret, slik vi har initialisert den til 0, ville det bli en uendelig sløyfe.
I oppdateringssonen vår endrer vi verdien av variabelen vår. I eksempelets tilfelle, hver gang løkken utføres, økes verdien av i med 1, men andre instruksjoner som multiplikasjon, subtraksjon, etc. kan også angis.
De for sløyfe er veldig nyttig i programmeringsverdenen, og selv om det er mindre vanlig, er det et spesielt tilfelle som kreves. Selv om dette vanligvis brukes i programmering av objekter som allerede er ganske avanserte, er bruken som kan gjøres i matriser interessant.
Løkke for i hva den gjør er å gå gjennom en matrise som passerer gjennom alle elementene effektivt. Definert en matrise, er koden som følger:
var array = ["First", "Second", "Third", "Fourth"]; for (i i matriser) {alert ("Course: array (i)"); }Han skriver alle tilgjengelige kurs fra det første til det fjerde.
Til slutt vil vi snakke om en av de mest brukte flytkontrollstrukturene som er switch -sløyfen, som betyr å velge på engelsk.
SWITCH sløyfeVi bruker denne strukturen nesten når vi vil lage en meny med de forskjellige alternativene. Det er en slags optimalisering av gjentagelsen av de andre hvis sløyfer som vi så før og som fungerer mye bedre og uten å være overflødig. Vi bruker det for de gangene vi ønsker å foreta flere kontroller av den samme variabelen, det vil si å velge en egenskap fremfor en variabel som utelukker den fra å ha en annen.
De bytte form er det neste:
bytte (bokstav) {case a: instruksjoner; gå i stykker; sak b: instruksjoner; gå i stykker; sak c: instruksjoner; gå i stykker; sak d: instruksjoner; gå i stykker; standard: instruksjoner; gå i stykker; }Den forrige sløyfen sendes en variabel, i denne bokstaven. Den kontrollerer denne variabelen og avhenger av hvilken den kommer inn og utfører den ene eller den andre instruksjonen og forlater deretter løkken. For å angi hvert av de tilgjengelige alternativene i vår bokstavvariabel, brukes det reserverte ordet store bokstaver. Sløyfen avsluttes ved hjelp av søkeordet pause, som er en hoppeinstruksjon, som avbryter eller modifiserer programflyten, i dette tilfellet tvinge sløyfeutgangen for tidlig. Det er imidlertid ikke obligatorisk å skrive inn dette ordet.
På denne måten ville vi ikke kutte strømmen av programmet og sjekke resten av alternativene (som vi vet ikke vil være sant) så det blir mindre optimalt. Det er veldig viktig å merke seg det kontroller utføres i rekkefølgeDerfor, hvis vi vet hvilket eller hvilke alternativer som skal brukes mest, er det bedre at vi plasserer dem først.
De standardverdi som vi ser i koden er den som brukes hvis den angitte verdien ikke samsvarer med noen tilfeller. I så fall hopper den til standard automatisk. Det er imidlertid ikke obligatorisk å inkludere standard i koden vår.