Trädvy Permalänk
Medlem
Plats
Vadstena
Registrerad
Nov 2005

Javascript while loop

Hej, jag är i start groparna att lära mig lite Java, har dock stött på patrull.

Tanken är att han ska skriva ut "I'm looping!" tre gånger

var count = 0; var loop = function(count){ while(count < 3){ console.log("I'm looping!" + (count++)); } }

Först en variabel som heter count och som är satt till 0, sålänge count är mindre än 3 skriv ut I'm looping, vid varje utskrift tillfälle, +1 count.

Vart tänker jag galet??

// Förtydligat Java vs. JavaScript i rubriken

Okay, what am I doing?
I'm chasing this guy.
Nope. He's chasing me.

Trädvy Permalänk
Medlem
Plats
-
Registrerad
Sep 2004
Skrivet av Ingemansson:

Vart tänker jag galet??

Jag kan inte java, så mina ursäkter om jag är ute och cyklar
Min gissning är att count ++ inte kan ligga innanför console.log parentesen?

maybe i'm a one trick pony
but i ride it ride it ride it ride it
ride it honey

Trädvy Permalänk
Testpilot, Moderator
Plats
Norrköping
Registrerad
Sep 2002

Man kan mycket väl använda och öka variabeln med ++ samtidigt, det är inte där felet ligger.

Felet ligger i att du deklarerar loop som en funktion men du anropar aldrig funktionen.
Variabeln count som används i funktionsdeklarationen har dessutom inte med den tidigare variabeln count att göra utan du måste skicka in ett nummer du vill att loopen ska starta på om du anropar den.

var count = 0; //onödigt, fyller ingen funktion var loop = function(count){ while(count < 3){ console.log("I'm looping!" + (count++)); } } loop(0); //anropar funktionen med start på 0

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 8GB][Gigabyte GeForce GTX 970 G1 Gaming]

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Aug 2009

Det ser mer ut som javascript,
men bara för att du gör en funktion och sparar den i variabeln loop så anropas den inte.

Kopiera istället en "hello world" i ditt programspråk och sätt din whileloop runt
printen så funkar det nog för dig.

Att tilldela funktioner, anropa funktionspekare, referenser eller anonyma objekt i java är
helt överkurs att börja med. Ha enkla tal, strängar eller objekt i dina varabler än så länge.

Trädvy Permalänk
Medlem
Registrerad
Mar 2013

Kul att du vill lära dig java, men det där är inte java utan javascript. ^^
Förmodligen fungerar det inte att inkrementera count när du skriver ut den. pröva istället:
console.log("I'm looping!")
count++

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - MSI GTX 770 Gaming 4GB- 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Kelvin S36

Trädvy Permalänk
Medlem
Plats
Vadstena
Registrerad
Nov 2005
Skrivet av hunden:

Man kan mycket väl använda och öka variabeln med ++ samtidigt, det är inte där felet ligger.

Felet ligger i att du deklarerar loop som en funktion men du anropar aldrig funktionen.
Variabeln count som används i funktionsdeklarationen har dessutom inte med den tidigare variabeln count att göra utan du måste skicka in ett nummer du vill att loopen ska starta på om du anropar den.

var count = 0; //onödigt, fyller ingen funktion var loop = function(count){ while(count < 3){ console.log("I'm looping!" + (count++)); } } loop(0); //anropar funktionen med start på 0

Ah snyggt, tack för bra förklaring.

Menade såklart javascript!

Okay, what am I doing?
I'm chasing this guy.
Nope. He's chasing me.

Trädvy Permalänk
Testpilot, Moderator
Plats
Norrköping
Registrerad
Sep 2002
Skrivet av GiletteRazor:

Kul att du vill lära dig java, men det där är inte java utan javascript. ^^
Förmodligen fungerar det inte att inkrementera count när du skriver ut den. pröva istället:
console.log("I'm looping!")
count++

Som jag nämnde i mitt inlägg är det inga problem att använda och öka variabeln samtidigt, det fanns även ett till inlägg mellan mitt och Roger W:s som också påstod att det var felaktigt att göra båda samtidigt men som sagt ligger inte problemet där.

var count= 0; console.log(count++); //skriver ut 0 och ökar sen count med 1 console.log(++count); //ökar count med 1 och skriver sen ut 2

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 8GB][Gigabyte GeForce GTX 970 G1 Gaming]

Trädvy Permalänk
Medlem
Registrerad
Mar 2013

@hunden: Det har du rätt i. Kollade inte så noga på varken koden eller i tråden innan jag skrev mitt svar.

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - MSI GTX 770 Gaming 4GB- 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Kelvin S36

Trädvy Permalänk
Testpilot, Moderator
Plats
Norrköping
Registrerad
Sep 2002

Man kan ju ioförsig såklart använda den första variabeln count när man anropar funktionen med, den behöver inte vara onödig. Här har jag döpt om den ena variabeln för att göra det tydligare men de kan heta samma sak utan att krocka då de ligger i olika scope.

var startcount = 0; //sätt till vad loopen ska anropas med/starta på var loop = function(count){ while(count < 3){ console.log("I'm looping!" + (count++)); } } loop(startcount); //anropar funktionen med start på startcount

Att ha variabler i olika scope som heter samma sak kan vara en källa till förvirring så man gör sig oftast en tjänst (speciellt som ny) i att hitta på unika namn.

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 8GB][Gigabyte GeForce GTX 970 G1 Gaming]