Arrayer

Introduktion

I detta kapitel ska vi se närmare på hur det med hjälp av arrayer går att organisera massvis med värden på ett effektivare sätt än med enskilda variabler. I Loopar kommer vi att gå igenom loopar. Med kombinationen av arrayer och loopar går det att åstadkomma storverk utan att behöva skriva oändligt långa sketcher. 

Skillnaden mellan variabler och arrayer

Det finns flera olika typer av variabler (t.ex. int och long), men gemensamt för dem är att de endast kan innehålla ett värde. Ibland är det praktiskt att kunna spara flera värden. Då används arrayer som är listor av variabler.

En array är som en tabell med en kolumn och flera rader. Det går till och med att ha så kallade tvådimensionella arrayer med flera kolumner och flera rader. Sådana används i många andra programmeringsspråk, men i Arduino-sammanhang används de sparsamt då de snabbt ockuperar mycket av det begränsade minnet. 

html_image

Skillnaden mellan variabler (vänster) och arrayer (höger).

Deklaration och initiering

I tidigare exempel har vi sparat hur många äpplen som Alice och Bob har plockat i enskilda variabler (t.ex. osignerade int-variabler eller long-variabler).  

long fruitsAlice = 1000;
long fruitsBob = 1100;

Med endast två äppelplockare är det inga problem, men det blir snabbt opraktiskt om äppelplockarna blir fler.

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

Genom att i stället lagra värdena i en array blir koden mer lätthanterlig. Det gör vi genom att skapa en long-array som vi kallar fruitsStatus. Vi deklarerar arrayen på samma sätt som om den vore en variabel, men vi lägger till två hakparenteser på slutet. Mellan hakparenteserna skriver vi hur många long-variabler vi ska kunna lagra i ­arrayen.

long fruitsStatus[4];

Sedan kan vi lagra hur många äpplen Alice, Bob, Charlie och Dave har plockat med följande kod. Vi anger platserna i arrayen som vi vill spara värdena i genom att skriva platsnumren inom hakparenteserna. Observera att första platsen har platsnummer 0, andra platsen platsnummer 1 och så vidare.

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

html_image

Värdena ligger på varsin plats i arrayen.

Om vi vet värdena redan vid deklarationen kan vi skriva koden ännu effektivare på följande vis.

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

Lägg märke till att vi inte ens behöver skriva hur lång arrayen ska vara. Om vi initierar arrayen med fyra värden i samband med deklarationen blir arrayen automatisk fyra värden lång. 

Sträng-array

En sträng är egentligen inget annat än en array av tecken (char). Eftersom strängar används så ofta har det skapats en egen klass för strängar (String) som gör att de beter sig som om de vore variabler. Det går till och med att skapa arrayer med strängar. 

Om vi vill lagra namnen för vem som har plockat si eller så många äppen, kan vi skapa en tillhörande String-array med följande kod.

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

Lägg märke till att namnen i names ligger på samma relativa position som den tillhörande mängden plockade äpplen i fruitsStatus.

html_image

String-arrayen med namn och long-arrayen med plockade äpplen.

Senast ändrad: 2019-10-14
IntroduktionSkillnaden mellan variabler och arrayerDeklaration och initieringSträng-array
Bli medlem i dagGör som nästan 2 miljoner andra och ta del av erbjudanden samt förmåner när du handlar!

Som medlem får du:

  • Exklusiva medlemserbjudanden
  • Poäng på allt du handlar
  • 100 dagars öppet köp
  • Se dina köp på kjell.com
Som medlem hos Kjell & Company kan du köpa utvalda medlemsvaror till extra bra priser, samla poäng och få bonuscheckar, samt ta del av unika medlemserbjudanden. Du får även förtur till vår kundservice, utökat öppet köp och förlängd garanti på utvalda varumärken.Läs mer om medlemskapet
Alltid tryggt att handla hos Kjell
Fri frakt

Vi bjuder på standardfrakten när du handlar för mer än 300:-

Fri retur

Fria returer i alla våra butiker.

Snabba leveranser

1-2 arbetsdagar leveranstid

Hämta i butik

Reservera online, redo att hämtas ut efter 15 minuter

Medlem i

Medlem i trygg e-handel

Du betalar enkelt

Får din beställning levererad med

Du kan handla från både

Det verkar som att du använder en gammal webbläsare, det kan göra att allt inte fungerar eller ser ut som det borde.