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

Čudna for petlja

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

[ Pregleda: 1157 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igyy
Igor Stojanovic
Osijek

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



Profil

icon Čudna for petlja21.02.2005. u 21:23

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!"
21.02.2005. u 21:23 

igyy
Igor Stojanovic
Osijek

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



Profil

icon Re: Čudna for petlja21.02.2005. u 22:13
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!"
21.02.2005. u 22:13 

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


Profil

icon Re: Čudna for petlja21.02.2005. u 22:13
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
21.02.2005. u 22:13 

igyy
Igor Stojanovic
Osijek

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



Profil

icon Re: Čudna for petlja21.02.2005. u 22:16
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!"
21.02.2005. u 22:16 

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

[ Pregleda: 1157 | Odgovora: 3 ]

Postavi temu Odgovori

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