No sidenav ...

Recent updates

then again, fuck that.

You are here > Home > Documents > >

1. Variabler

Når du oppretter en variabel, så setter du av en liten bit av RAMen til PCen. Denne har du tilgang til via navnet du valgte. I en variabel kan man lagre informasjon på forskjellige måter, avhengig av hvilken type variabel du opprettet. En int kan lagre et heltall, en long kan huske mye større heltall, man kan legge desimaltall i en double, mens en string kan inneholde mengde på mengde med tekst.

Man kan også huske på flere verdier i samme variabel, for eksempel komma-separert i en string. Men hva gjør man når man skal ha tak i en spesiell verdi, eller f.eks. overskrive annenhver lagret verdi? Å gjøre slikt via split-funksjonen er tregt og upraktisk ved større datamengder. Derfor har vi noe kalt arrays i tilnærmet alle programmeringsspråk.

2. Variabler som arrays

Alle typer variabler kan også dimensjoneres (lages) som et array. Dersom vi skriver int loldongs vil vi opprette en vanlig variabel, men om vi istedenfor skriver int[] loldongs får vi flere variabler i samme variabel. Dette bringer mange fordeler - man kan f.eks. lage en array som inneholder alle tillatte brukernavn, og bruke en for-loop for å sjekke om en spesiell bruker har lov til å logge inn på systemet.

Et array må som oftest få tildelt en lengde (antall verdier) før vi kan begynne å lese eller skrive informasjon. Dette kan gjøres på flere måter. La oss ta en titt på de mest normale måtene:


string[] aids = new string[3];
aids[0] = "Hay";
aids[1] = "thar";
aids[2] = "cockbite!";

Her oppretter vi først string-arrayet "aids" med en lengde av 3, og skriver manuelt ordene "Hay thar cockbite!" til hvert sitt felt. Legg merke til at vi starter på 0 og slutter på 2 - alle arrays er nullbasert. Om vi skal ha tak i element 3 (i dette arrayet), så må vi skrive aids[2]. Skriv aids[3], og du får en krasj fordi arrayet ikke er så langt.

Hvert enkelt element i et string-array fungerer akkurat som en vanlig string. Dersom vi skriver aids[2] et sted i koden, så er det som om vi hadde en normal string med verdien til aids[2] i seg. Dersom vi ønsker å skrive element 3 ("cockbite!") til konsollen, så kan vi dermed skrive System.out.println(aids[2]);.


string[] aids = { "Hay", "thar", "cockbite!" };

Om arrayet skal inneholde en bestemt mengde verdier, så kan vi initialisere det på shortform (som over). Dette arrayet blir automatisk satt til å ha lengde 3, og inneholder (og fungerer) akkurat slik som forrige eksempel. Selv om dette virker enklere, så brukes den som oftest når vi bestemmer verdiene selv. Shortform kan vanligvis ikke brukes dersom programmet skal generere et array av ukjent lengde. Vi kommer tilbake til dette senere.


string[] aids = "Hay thar, cockbite!".split(' ');

Dersom vi allerede har brukt en vanlig string for å huske på flere verdier, så kan vi bruke split-metoden for å opprette et array i etterkant. Her angir vi at verdiene er separert av et mellomrom, og vi vil ende opp med det samme arrayet som i eksempel 1 og 2. Legg merke til at split støtter bruken av regex uttrykk, så du kan gjøre jævlig avansert shit med den... Om du behersker regex, så kan mye forenkles. Det betyr også at visse spesialtegn (f.eks. punktum, komma etc) kan tolkes som deler av et regex uttrykk, noe som fører til at split bajser på leggen istedenfor å funke som man skulle tro at det burde.

Okay, så nå har vi sett hvordan vi lager et array med verdier vi har bestemt selv. Hva gjør vi for å angi verdier dynamisk? La oss se på et par eksempler. Men først - kort oppsummering av for-loops.


for (int a = 3; a < 10; a++)
	System.out.print(a + ", ");

Koden i for-loopen vil her utføres 10-3 = 7 ganger. I hver kjøring av koden vil verdien av a økes med 1 (a++). For-loopen skal starte på 3 og kjøre så lenge a er mindre enn 10. Vi kan lese verdien til a hvor som helst i for-loopen, noe som er nyttig i flere situasjoner. I dette eksempelet vil "a" skrives til konsollen, og dette gjentas for alle verdier av a. Utskriften blir da "3, 4, 5, 6, 7, 8, 9, ". Legg merke til at 10 ikke kommer med, siden koden skal utføres mens a er mindre enn 10.

HAHA har også en måte å lage "random" tall på. De er egentlig ikke random, men jeg skal ikke starte noen lang rant om det nå. For å plukke ut et vilkårlig tall mellom 0 og 100, så kan vi gjøre slik: int nigger = rand.nextInt(100);. Husk import java. util.Random; øverst i programmet om du bruker HAHA. La oss se hvordan dette kan være nyttig.


int[] wat = new int[9001];
Random rand = new Random();
for (int a = 0; a < wat.length; a++)
	wat[a] = rand.nextInt(100);

Her lager vi et int-array med OVER 9000 elementer, og bruker en for-loop for å gå fra element 0 og opp til det siste elementet. For at vi enkelt skal kunne endre lengden på int-arrayet, så er det en god idè å kun skrive lengden ett sted - nemlig idèt vi oppretter det. I for-loopen går vi fra element 0 opp til (men ikke med) wat's antall elementer. Husker du at arrays er nullbaserte? wat.length vil returnere antallet elementer i wat, og siden arrayet starter på 0 vil det siste elementet være wat.length - 1. Siden for-loopen vil kjøre opp til (men ikke med) maksverdien, så vil a derfor gå fra første til siste element i wat.

Inni for-loopen velger vi at vi skal skrive et vilkårlig tall til wat[a]. Etter denne for-loopen til wat dermed inneholde 9001 vilkårlige tall fra 0 til 100. La oss se hvordan vi kan bruke dette...


for (int a = 0; a < wat.length; a++)
	if (wat[a] > 50)
		System.out.print(wat[a] + ",");

Her bruker vi en for-loop for å sjekke alle elementene i wat. Dersom verdien til element a i wat er over 50, så vil den skrives til konsollen. Verdens mest nyttige program, amirite? Hater å finne på eksempler.

THAT'S IT FOLKS, GOOD FUCKING LUCK