Kezdőoldal » Számítástechnika » Programozás » Elmagyarázná valaki a következ...

Elmagyarázná valaki a következő loop végeredményét? (JavaScript)

Figyelt kérdés

let total = 24;

for (let number = 1; number <= (total - (total % 2) / 2); number++) {

total = total - number;

console.log(total + " " + number);

}


a konzolra a következő kerül ki:


23 1

21 2

18 3

14 4

9 5

3 6


De miért?

És: total - (total % 2) / 2 — ez miért 24?

Total % 2 = 0, nem?

Akkor (total - (total % 2) / 2); az miért nem = 0 ?


Köszönöm, ha valaki türelmesen elmagyarázza.



2020. aug. 22. 14:10
 1/5 anonim ***** válasza:
56%

Ha total = 24, akkor:

24 % 2 = 0

(24 % 2) / 2 = 0 / 2 = 0

24 - (24 % 2) / 2 = 24 - 0 / 2 = 24 - 0 = 24


Lásd: precedencia-szabályok:

[link]

2020. aug. 22. 14:18
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Köszi, ez már így világos! És miért csak eddig fut le a loop? Miért a 6-nál áll meg?
2020. aug. 22. 14:20
 3/5 anonim ***** válasza:

A JS minden iteráció előtt kiértékeli a kifejezést, tehát total aktuális értékével (24, 23, 21 stb.) számol. 9-es total és 5-ös number esetén még igaz lesz a kifejezés, 3 és 6 esetén pedig már nem.


Ez egyébként egy nagyon-nagyon rossz példa, a for ciklusban szereplő kifejezések elemeit (itt total) ne módosítsd a ciklusmagban! Átláthatatlan a kód, megjósolhatatlan a leállási feltétel és könnyen juthatsz végtelen ciklushoz is.

2020. aug. 22. 16:41
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
51%

Mert a number <= total - (tolal % 2) / 2 feltétel már nem lesz igaz.

Viszont nem tudom ez az elcseszett sz .rtalcsika kód honnan van, de nagyon sürgősen felejtsd el. Olvashatatlan, a változók elnevezése nem informatív, a számítás nem tudod mit csinál; karbantarthatatlan: a ciklus leállási feltétele változik, ráadásul a cikluson belülről, szóval fingod nincs mikor áll le hacsak nem futtatod. 4 soros kódból mind a 4-ben látok kivetnivalót, ami azért már durva.

2020. aug. 22. 17:16
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

Koszi a segítséget mindenkinek !


Forrás: [link]


Alap js dolgokat szeretnék gyakorolni, azért kerestem ilyesmit. De ha tudtok jobb forrást, megköszönöm, ha linkeltek valamit!

2020. aug. 22. 20:09

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!