Kezdőoldal » Számítástechnika » Programozás » Itt miért ennyi az i értéke?

Itt miért ennyi az i értéke?

Figyelt kérdés

int i = 10;

while (i++ <= 10) {


}

System.out.print(i);


12-őt ír ki.


Azt értem ,hogy az i növelése a while kiértékelése után történik és utána növeli i-t. De akkor miért nem 11-et ír ki?


2016. ápr. 18. 18:51
 1/5 anonim ***** válasza:
0%
"amíg az i++ kisebb vagy egyenlő mint tíz" ennek így nem sok értelmét látom(egyáltalán csoda hogy lefut)..nem valami ilyesmire gondolsz? while (i<=10;i++)
2016. ápr. 18. 19:01
Hasznos számodra ez a válasz?
 2/5 Koplárovics Béci ***** válasza:
100%

Az i-nek 10-et adsz. Majd megnézed, hogy kisebb, vagy egyenlő-e 10-zel (egyenlő) és hozzáadsz egyet. i=11 lesz. Mivel a feltétel igaz volt, lefut a cikluson belüli rész (jelenleg semmi), majd vissza az elejére: megvizsgálod, hogy az i kisebb vagy egyenlő-e 10-zel (nem igaz, mert 11), majd utána növeled egyel, azaz i=12.

Azaz egyszer belemegy a ciklusba, mert a vizsgálatkor még igaz a feltétel. Második alkalommal nem megy bele a ciklusba, mert a feltétel már nem igaz, de ettől még hozzáad egyet.

2016. ápr. 18. 19:07
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
100%

i = 10


i <= 10 igaz

i++


i = 11

i <= 10 hamis

i++


i = 12


Egy említésre méltó dolog még van.

- Ha van egy olyan utasításod, amelyben i++ van, akkor az utasítás lefutása után rögtön növeli az i értékét:

int i = 5;

int j = i++;

Ez azt jelenti, hogy:

int i = 5;

int j = i; //=5

i++;


- Ha van egy olyan utasításod, amelyben ++i van, akkor előbb növeljük az i értékét és utána hajtjuk végre az utasítást az immáron megnövelt értékkel:

int i = 5;

int j = ++i;

Ez azt jelenti, hogy:

int i = 5;

++i;

int j = i; //=6

2016. ápr. 18. 19:08
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

A gép lelkében ez történik:

int i = 10;


boolean futtathato = i <= 10; //logikai igaz, azaz

i++; //i=11

if (futtathato) {

//ciklusmag

}


boolean futtathato = i <= 10; //logikai hamis (11 nem <= 10)

i++; //i=12

if (futtathato) { //nem teljesül a feltétel

//ciklusmag

}

2016. ápr. 18. 19:18
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Nem tudom, mi olyan meglepő ezen...


Egy kifejezés Java-ban lehet:

- literál

- változó

- nevesített konstans

- minden olyan metódus, amelyek visszatérési értékének típusa nem void

- példányosítás a new operátorral

- operátorokkal végzett műveletek (beleértve a ++, --, += és -= operátorokat is)

- tömbök

és még ki tudja, mit hagytam ki.

2016. ápr. 18. 19:34
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!