Permalänk

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
Visa signatur

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

Permalänk
Medlem
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?

Visa signatur

A modest man is usually admired, if people ever hear of him.

Permalänk
Testpilot

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

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Medlem

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.

Permalänk

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++

Visa signatur

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - RTX 2060 - 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Noctua UH-14S

Permalänk
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!

Visa signatur

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

Permalänk
Testpilot
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

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk

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

Visa signatur

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - RTX 2060 - 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Noctua UH-14S

Permalänk
Testpilot

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.

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]