Arrayer

Innledning

I dette kapittelet skal vi se nærmere på hvordan du ved hjelp av arrayer kan organisere massevis av verdier på en mer effektiv måte enn med enkeltstående variabler. I Løkker går vi gjennom løkker (loops). Med kombinasjonen av arrayer og løkker kan du lage omfattende skisser uten å skrive veldig mye kode.

Forskjellen på variabler og arrayer

Det finnes forskjellige typer variabler (f.eks. int og long), men felles for dem er at de bare kan inneholde én verdi. I blant er det praktisk å kunne lagre flere verdier. Da brukes arrayer, som er lister med variabler.

Et array er som en tabell med en kolonne og flere rader. Man kan også ha såkalte todimensjonale arrayer med flere kolonner og flere rader. Slike brukes i mange andre programmeringsspråk, men i Arduino-sammenheng brukes de sparsomt fordi de raskt okkuperer mye av det begrensede minnet.

html_image

Forskjellen på variabler (venstre) og arrayer (høyre).

Deklarasjon og initiering

I tidligere eksempler har vi lagret hvor mange epler som Alice og Bob har plukket, i enkeltstående variabler (f.eks. usignerte int-variabler eller long-variabler). 

long fruitsAlice = 1000;
long fruitsBob = 1100;

Med bare to epleplukkere er det ikke noe problem, men det blir raskt upraktisk hvis epleplukkerne blir flere.

long fruitsAlice = 1000;
long fruitsBob = 1100;
long frutsCharlie = 1200;
long fruitsDave = 1300;

Ved å i stedet lagre verdiene i et array blir koden enklere å håndtere. Det gjør vi ved å lage et long-array som vi kaller fruitsStatus. Vi deklarerer arrayet på samme måte som en variabel, men vi legger til to hakeparenteser på slutten. Mellom hakeparentesene skriver vi hvor mange long-variabler vi skal kunne lagre i arrayet.

long fruitsStatus[4];

Deretter kan vi med følgende kode lagre hvor mange epler Alice, Bob, Charlie og Dave har plukket. Vi angir plassene i arrayet som vi vil lagre verdiene i, ved å skrive plassnummeret i hakeparentes. Merk at den første plassen har plassnummer 0, den andre har plassnummer 1 osv.

fruitsStatus[0] = 1000;
fruitsStatus[1] = 1100;
fruitsStatus[2] = 1200;
fruitsStatus[3] = 1300;

html_image
Verdiene ligger på hver sin plass i arrayet.

Hvis vi allerede vet verdiene når vi deklarerer, kan vi skrive koden enda mer effektivt slik:

long fruitsStatus[] = {1000, 1100, 1200, 1300};

Legg merke til at vi ikke trenger skrive hvor langt arrayet skal være. Hvis vi initierer arrayet med fire verdier i deklarasjonen, blir arrayet automatisk fire verdier langt.

Streng-array

En streng er egentlig ikke noe mer enn et array av tegn (char). Siden strenger brukes så ofte, har det blitt utviklet en egen klasse for strenger (String) som gjør at de får samme virkemåte som variabler. Du kan til og med lage arrayer med strenger.

Hvis vi vil lagre navnene på hvem som har plukket så og så mange epler, kan vi lage et tilhørende string-array med følgende kode:

String names[] = {"Alice", "Bob", "Charlie", "Dave"};

Legg merke til at navnene i names ligger på samme relative posisjon som det tilhørende antall plukkede epler i fruitsStatus.

html_image

String-arrayet med navn og long-arrayet med plukkede epler.
Sist endret: 16.10.2019
InnledningForskjellen på variabler og arrayerDeklarasjon og initieringStreng-array
Bli medlem i dagBenytt deg av våre fantastiske tilbud!

Som medlem får du:

  • Eksklusive medlemstilbud
  • Poeng på alt du handler
  • Se kjøpene dine på kjell.com
  • Personlige tilbud
Som medlem av Kjell & Company får du kjøpt utvalgte forbruksvarer til ekstra gode priser. Du kan også samle poeng og motta bonussjekker og benytte deg av unike medlemstilbud.Les mer
Alltid trygt å handle hos Kjell
Fri frakt

Vi betaler frakten når du handler for mer enn 499,-

Fri retur

Fri retur i alle butikkene våre.

Rask levering

2–4 virkedagers leveringstid.

Hent i butikk

Reserver produktet online og hent det i butikk samme dag.

Medlem av

Medlem av Trygg E-Handel

Du betaler enkelt med

Få bestillingen din levert med

Du kan handle fra både

Det ser ut som du bruker en gammel nettleser. Det kan gjøre at ikke alt fungerer eller ser ut som det skal.