» »

while in for odštevanje - kot rezultat upošteva tudi izhodiščno vrednost

while in for odštevanje - kot rezultat upošteva tudi izhodiščno vrednost

slitkx ::

Tole je delujoča koda, sintaktično pravilna, morda je kaj tudi odveč napisanega (npr.
var i = 40;
).

Zanima me, kaj mi je storiti, da pri izpisovanju ne bo izpisalo tudi "Trenutni rezultat odštevanja je 40."? Želim, da začne s 36.
Ni nujno, da mi podate direktno rešitev - tudi namig k razmišljanju bo ok.


// Tole sta 'for' in 'while' zanki, v kateri bo program najprej izpisal
// začetno vrednost 40, nato po preverjanju pogoja trenutno vrednost
// zmanjšal za 4 ter izpisal novo vrednost. Nato zopet sledi preverjanje
// pogoja ter izpisovanje trenutne vrednosti, vse dokler program
// ne pride do 0 in izpiše tudi to vrednost.

console.log("Začetna vrednost je 40.");

var i = function ()

{
	var i = 40;
	while (i >= 0)
	{
	console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
	i-=4;
	}
};

for (i = 40; i >= 0; i-=4)
{
console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
}

slitkx ::

Naloga je sicer s Codecademy, potrebno je bilo uporabiti 'while' in 'for' zanki hkrati. Lahko bi ju tudi v eni kodi skupaj. (Tudi tukaj velja, da mi lahko predlagate rešitev oz. namignete.)

Eh, sem že pogruntal, lol. :D


// Tole sta 'for' in 'while' zanki, v kateri bo program najprej izpisal
// začetno vrednost 40, nato po preverjanju pogoja trenutno vrednost
// zmanjšal za 4 ter izpisal novo vrednost. Nato zopet sledi preverjanje
// pogoja ter izpisovanje trenutne vrednosti, vse dokler program
// ne pride do 0 in izpiše tudi to vrednost.

console.log("Začetna vrednost je 40.");

var i = function ()

{
	var i = 36;
	while (i >= 0)
	{
	console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
	i-=4;
	}
};

for (i = 36; i >= 0; i-=4)
{
console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
}

Zgodovina sprememb…

  • spremenil: slitkx ()

root987 ::

Bravo :)

Da ne bom samo nekoristen - to da imaš ime funkcije enako kot spremenljivka je zelo grda praksa in kar kličeš po težavah - ko sem prvič videl tvojo kodo sem pričakoval da imaš že probleme zaradi tega. i je sicer dokaj standardno ime za spremenljivke za loope, tako da bi na tvojem mestu funkcijo preimenoval.

Poleg tega je tukaj ali ta loop ali pa funkcija nekoristna - v trenutni različici se izvrši samo loop, saj v loopu takoj prepišeš funkcijo i s številom 36.

Če hočeš s funkcijo:

var zacetna = 40;
var odstevajpo = 4;
console.log("Začetna vrednost je "+zacetna);

var odstevalnik = function ()
 
{
    var i = zacetna - odstevajpo;
    while (i >= 0)
    {
    console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
    i -= odstevajpo;
    }
};
odstevalnik();
"Myths which are believed in tend to become true."
--- George Orwell

Zgodovina sprememb…

  • spremenil: root987 ()

slitkx ::

A pa se da to tudi na elegantnejši način izvesti, s kakim pogojem, primerjavami? Ker direktno vpisovanje 36 deluje cheap.

Fora naloge je, da imam HKRATI while in for zanko, ki izvršita enako.
Funkcijo sem na začetku zapisal, ker je tako tudi v Codecademy primeru. Poleg tega, ko sem odstranil deklaracijo funkcije, se koda ni izvršila, brskalnik se je pa obesil. ;)

Zgodovina sprememb…

  • spremenil: slitkx ()

root987 ::

Am, razen tega da narediš kot začetni pogoj
var i = zacetna - odstevajpo;
, mi kaj drugega trenutno ne pade na pamet.

A, oki, nisem vedel kaj je cilj naloge. Ampak potem moraš dodati še izvršitev funkcije, saj se ti po tvoji kodi ne izvrši.

Kako misliš to da si odstranil deklaracijo funkcije?
"Myths which are believed in tend to become true."
--- George Orwell

slitkx ::

 Codecademy navodila

Codecademy navodila

TEDY ::

v while zanki lahko prestaviš i-=4 pred izpis

Spura ::

TEDY je izjavil:

v while zanki lahko prestaviš i-=4 pred izpis

DDDDDDDD :)

TEDY ::

samo v tem primeru ti gre lahko tudi v minus, moraš popraviti pogoj.
še za for zanko:
for(i=40; i-=4, i>=0;)

slitkx ::

Torej končni izpisa z while in for hkrati ter morebiti brez funkcije je?
Ker tudi če i-=4 prestavim, ni haska.

Zdajle sicer premetavam kodo gor-dol...

Zgodovina sprememb…

  • spremenil: slitkx ()

slitkx ::

Če odstranim deklaracijo funkcije, se pojavi tole:



slitkx ::

slitkx je izjavil:

Če odstranim deklaracijo funkcije, se pojavi tole:




Potlej sem sicer odstranil še { in }, a kljub temu pri izpisu odštevanja še upošteva tudi 40.

TEDY ::

prilepi kodo

slitkx ::

console.log("Začetna vrednost je 40.");

	var i = 40;
	while (i >= 0)
	{
	console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
	i-=4;
	}


for (i = 40; i >= 0; i-=4)
{
console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
}



Tole zgoraj je toliko popravljena koda, da ne jamra več z onima napakama. Ampak še zmeraj pa izpiše pri odštevanju tudi 40.
Zdajle skušam sestaviti kodo tako, da bi bila 'for' v 'while'.

Aja, pa tole premikanje i-=4; pred izpis ni imelo efekta.

Zgodovina sprememb…

  • spremenil: slitkx ()

TEDY ::

var i = 40;
while (i >= 4)
{
	i-=4;
	console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
}
			
for (i = 40;  i-=4, i >= 0;)
{
	console.log("Trenutni rezultat odštevanja je" + " " + i + ".");
}

slitkx ::

Hvala, koda se izvrši, kot je pričakovano. (Vendar pa zopet javi opozorila (ne z rdečim X-om, temveč klicajem), a bo že treba ignorirati...)

Zgodovina sprememb…

  • spremenil: slitkx ()

slitkx ::

Iz analize vidim, da 'while' zanke še ne zastopim dovolj dobro.

Baja ::

slitkx je izjavil:

A pa se da to tudi na elegantnejši način izvesti, s kakim pogojem, primerjavami? Ker direktno vpisovanje 36 deluje cheap.

Fora naloge je, da imam HKRATI while in for zanko, ki izvršita enako.
Funkcijo sem na začetku zapisal, ker je tako tudi v Codecademy primeru. Poleg tega, ko sem odstranil deklaracijo funkcije, se koda ni izvršila, brskalnik se je pa obesil. ;)



ce hočeš met začetno vrednost 40, prvi rezultat pa 36, potem prvo odštej 4 in nato izpiši s console.log() ;)

slitkx ::

Tole je bilo že davno rešeno.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[JavaScript] Objects

Oddelek: Programiranje
172780 (2242) noraguta
»

jQuery - proži samo enkrat

Oddelek: Programiranje
71187 (984) luksorzi
»

[js] json kompresija

Oddelek: Programiranje
223834 (3183) infiniteLoop
»

[jquery] .append

Oddelek: Programiranje
21942 (769) korenje3
»

Spletna stran oz. program za preverjanje delovanja JavaScript kode?

Oddelek: Programiranje
7711 (636) slitkx

Več podobnih tem