Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 4.913 pregleda

Najnovija ↓

Čudna for petlja 21.02.2005. u 22:23 · pre 264 meseca #1
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
Potpis
" A language that doesn't affect the way you think about programming, is not worth knowing!"
Re: Čudna for petlja 21.02.2005. u 23:13 · pre 264 meseca #3
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
Re: Čudna for petlja 21.02.2005. u 23:16 · pre 264 meseca #4
Hvala filipe, tek sad vidim da smo postali u istoj minuti haha 23:13 :)
Potpis
" A language that doesn't affect the way you think about programming, is not worth knowing!"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme