Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Čudna for petlja

[es] :: Java :: Čudna for petlja

[ Pregleda: 3644 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igyy
Igor Stojanovic
Osijek

Član broj: 43742
Poruke: 42
*.studom.stucos.hr.



+1 Profil

icon Čudna for petlja21.02.2005. u 21:23 - pre 232 meseci
Pozdrav svima,

Jel mi može netko objasniti sljedeći kod:

Code:
class test{

      static int m1(String s, int i){
           System.out.print(s + i);
           return i;
      }

public static void main (String[] args){

       int j = 0;
       for (int i = m1("A",0); m1("B",i) < 2; m1("C",++i)){

                m1("J",++j);
       }
}



Output je: A0B0J1C1B1J2C2B2

Nije mi jasno zašto dolazi do preskakanja pozivanja m1 metode,npr

za prvu iteraciju očekujem izlaz: A0B0C1J1 a ne A0B0J1C1;zašto se prvo izvrši metoda u tijelu for petlje (m1("J",++j) pa poslije toga ona metoda u dijelu petlje za povećanje brojača m1("C",++i)


Unaprijed hvala na odgovoru!


pozdrav
" A language that doesn't affect the way you think about programming, is not worth knowing!"
 
Odgovor na temu

igyy
Igor Stojanovic
Osijek

Član broj: 43742
Poruke: 42
*.studom.stucos.hr.



+1 Profil

icon Re: Čudna for petlja21.02.2005. u 22:13 - pre 232 meseci
Našao sam rješenje...odgovor se krio u Java Language Specification-u,definicija for petlje http://java.sun.com/docs/books...html/statements.doc.html#24588
" A language that doesn't affect the way you think about programming, is not worth knowing!"
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.ipact.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Čudna for petlja21.02.2005. u 22:13 - pre 232 meseci
Ovaj program je ekvivalentan sa:

Code:
class test{
     static int m1(String s, int i){
         System.out.print(s + i);
         return i;
     }
 
     public static void main (String[] args){
         int j = 0;
         int i = m1("A", 0);
         while ( m1("B", i)  < 2) {
             m1("J", ++j);
             m1("C", ++i);
         }
     }
 }
 
 
Nadam se da je sada jasnije. (Upravo, u C-u for petlja se interno ovako prevodi; u Javi je semantika ista).

f
 
Odgovor na temu

igyy
Igor Stojanovic
Osijek

Član broj: 43742
Poruke: 42
*.studom.stucos.hr.



+1 Profil

icon Re: Čudna for petlja21.02.2005. u 22:16 - pre 232 meseci
Hvala filipe, tek sad vidim da smo postali u istoj minuti haha 23:13 :)
" A language that doesn't affect the way you think about programming, is not worth knowing!"
 
Odgovor na temu

[es] :: Java :: Čudna for petlja

[ Pregleda: 3644 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.