Modul 6
I modul 5 bladrede du gennem listen ét klik ad gangen. Nu skal computeren gøre det hele på én gang.
En knap, der viser alle elementer fra en liste på én gang, samlet i én label. Hele listen på ét klik.
0, 4 og i udfyldt på forhånd.
Du retter bare i tallene.
Den eneste nye blok i dette modul. Resten kender du.
Design
En Button med id visKnap og en
Label med id listen. Gør labelen høj, så der
er plads til flere linjer.
Opret listen og en tom opsamler
alleByer starter som tom tekst. Den skal vokse undervejs.
Læg for-løkken ind i en onEvent
Træk for (var i = 0; i < 4; i++) { ind. Den kommer med
i < 4. Ret 4 til byer.length, så
løkken passer til listen, uanset hvor lang den er.
Læg én by til opsamleren for hver runde
"\n" er tegnet for linjeskift. Det er to tegn på tastaturet,
men ét usynligt tegn i teksten.
Linjen her har tre tegn, der ikke står på nogen tast. På en dansk Mac:
⌥8 giver [,
⌥9 giver ], og
⇧⌥7 giver \.
Resten står på tastatursiden.
Beslut dig, før du går i gang med hullet: enten taster
du hele linjen, eller også trækker du alle brikkerne ind. Begynder du at
taste og henter så list[0] fra
værktøjskassen, fordi du ikke kan finde [, så lander blokken
oven i hullet og sletter alt det, du havde skrevet.
byer[i] er samme blok som i modul 5, men nu er indekset løkkens egen tæller.
Vis resultatet, efter løkken
setText skal ligge uden for den blå løkke, men stadig inde i onEvent. Ellers opdateres labelen fem gange i træk uden grund.
Kør. Alle fem byer står der. Klik igen, og nu står de der to gange. Det retter vi i næste trin.
Tøm opsamleren ved hvert klik
Flyt nulstillingen ind i onEvent, øverst, før løkken.
En løkke kører det samme stykke kode igen og igen. En for-løkke bruges, når du på forhånd ved, hvor mange gange.
Der står tre ting adskilt af semikolon:
i++ er en kort måde at skrive i = i + 1.
Løkken ovenfor kører med i lig 0, 1, 2, 3 og 4. Fem gange. Ved 5
er betingelsen ikke sand længere, og løkken stopper. Den kører aldrig med
i lig 5.
Lister tæller fra 0, og for-løkker starter ved 0. Derfor passer de præcis sammen.
i lig 0, 1, 2, 3, 4.byer[i] rammer altså præcis ét element per runde.Skriver du i < byer.length i stedet for et fast tal, passer
løkken automatisk, hvis du senere tilføjer flere byer.
Variablen alleByer er en opsamler: den starter
tom og bliver lidt større for hver runde. Samme mønster bruges til at lægge tal
sammen:
i ved 1 og
betingelsen bruger <=, fordi vi vil have 10 med.Opsamleren skal oprettes uden for løkken. Lå
var sum = 0 inde i løkken, ville den blive nulstillet ved hver
runde, og resultatet ville altid være det sidste tal. Samme regel som med
variablen i modul 2, bare et niveau ned.
Opgave
Udfordring
Tæl, hvor mange af tallene i en liste der er over 50. Du skal bruge en for-løkke og en if-blok inde i den, altså en blå blok inde i en blå blok. Kig efter de to blå skinner i venstre side.
i < liste.length er bedre end et fast tal.Byggeklods: gennemgå en hel liste