Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] while w while
Forum PHP.pl > Forum > Przedszkole
simperium
Witam, mam taki problem:

czy można w jednym while zastosować drugie while?

tzn:

mam tak:

Kod
$liczba=0;
while ($liczba <3)   #while_pierwszy
     {
      $cośtam # tu następuje parę komend + ta
    
       $licznik=0;
    
      while ($licznik <3) # While_drugi
           {echo tratatat;  
           $licznik++;}
     $liczba++;
                 }


Czy można zrobić tak, by kod uzyskiwał taki efekt, by while_pierwszy zatrzymywał się na drugim, aż ten cały się popętli, po czym wracał do pierwszego, czyli by efekt był taki:

$liczba=0, $licznik=0
$liczba=0, $licznik=1
$liczba=0, $licznik=2

$liczba=1, $licznik=0
$liczba=1, $licznik=1
$liczba=1, $licznik=2

$liczba=2, $licznik=0
$liczba=2, $licznik=1
$liczba=2, $licznik=2

?

Pozdrawiam
Spawnm
dając pętle1 w petli2 na każdy jeden przelot pętli2 przypadną wszystkie przeloty z pętli1.
Marr
a złożoność rośnie wykładniczo smile.gif
simperium
znaczy się na odwrót wszystko machnąć,
Znaczy się: pętla druga powinna być nad pętlą pierwszą?
pEbE
Cytat(simperium @ 26.02.2009, 15:20:37 ) *
znaczy się na odwrót wszystko machnąć,
Znaczy się: pętla druga powinna być nad pętlą pierwszą?

Nie, jaka bedziesz mial roznice w tym : ) Skoro w pierwszej pętli masz pętlę drugą to musi się ona wykonać, aby pętla pierwsza mogła iść dalej smile.gif

a co do tych licznikow to na moj gust zrob takie cos:

  1. <?php
  2. $liczba = 0;
  3. $licznik = 0;
  4. while( warunek1 )
  5. {
  6.  
  7.  $liczba++;
  8.  // echo $liczba
  9.  
  10.  while( warunek2 ){    
  11.     $licznik++;
  12.     // echo $licznik;
  13.  }
  14.  
  15. }
  16. ?>
simperium
niestety, gdy stosuję tę pętlę wynik wychodzi taki:

liczba =1 licznik=1
liczba =2 licznik=1
liczba =3 licznik=1

a miało być tak:

liczba=1 licznik=1
licznik=2
licznik=3

liczba=2 licznik=1
licznik=2
licznik=3

itd...
maziak
Zamien w takim to przypadku "liczbe" z "licznikiem"?

Poza tym, jezeli nie wyzerujesz tego co liczy w 2 petli to bedzie o jeden "za duze", tymsamym druga petla przestanie sie wykonywac juz po pierwszej iteracji petli nadrzednej. Generalnie zamierzony wynik z w/w posta mozna uzyskac tak :
  1. <?php
  2. $x = 0;
  3.  
  4.  
  5. while ($x<=3) {
  6. echo 'x='.$x;
  7. $x++;
  8.  
  9. $y=0;
  10.        while($y<=3) {
  11.        echo 'y='.$y.'<br>';
  12.        $y++;
  13.        }
  14. }
  15. ?>



Kod
x=0y=0
y=1
y=2
y=3
x=1y=0
y=1
y=2
y=3
x=2y=0
y=1
y=2
y=3
x=3y=0
y=1
y=2
y=3
simperium
Po długich testach okazało się... że działa smile.gif.

Dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.