Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wykonywanie pętli tak długo aż warunek się spełni
Mody23
post 22.03.2015, 14:01:25
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Jak w PHP wywołać jakąś pętlę, która będzie wykonywała się tak długo, aż jakiś warunek zwróci TRUE?

Powiedzmy, że mam zmienną $output, która musi dać TRUE i wtedy wykona się jakaś tam operacja, a pętla po wykonaniu operacji się przerwie. Jeśli zmienna $output nie zwróci TRUE to pętla wykonuje się od zera (conitnue), tak długo aż zmienna zwróci TRUE.

Mógłbym to zrobić np. tak:

  1. for($i= 0; $i<=1000; $i++)
  2. {
  3. if ( $output == TRUE )
  4. {
  5. // cos tam
  6. }
  7. continue;
  8. }


ale to jest takie prymitywne rozwiązanie, że wolałbym go uniknąć. Jest w PHP coś co nada się w sam raz do opisanej przeze mnie sytuacji?

Dzięki.
Go to the top of the page
+Quote Post
slash^
post 22.03.2015, 14:03:28
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


do {} while ()


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Mody23
post 22.03.2015, 14:09:13
Post #3





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Jak powinna wyglądać konstrukcja tej pętli w tym wypadku?
Go to the top of the page
+Quote Post
slash^
post 22.03.2015, 14:10:31
Post #4





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


  1. do {
  2. //twoje obliczenia $output
  3. } while (!$output);


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Skie
post 22.03.2015, 14:11:21
Post #5





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Każda pętla się do tego nada, ponieważ to co opisałeś to właśnie przypadek użycia pętli... Ludzie, choć trochę asertywności, naprawdę.

Kod
for ($ouput = false; $output !== true; )
{
   $output = doSmth();
}


Kod
$output = false;
while ($output !== true)
{
   $output = doSmth();
}


Kod
do {
   $output = doSmth();
} while($output !== true);


Ten post edytował Skie 22.03.2015, 14:12:32


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
Mody23
post 22.03.2015, 14:30:08
Post #6





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Cytat(slash^ @ 22.03.2015, 14:10:31 ) *
  1. do {
  2. //twoje obliczenia $output
  3. } while (!$output);


Rozumiem, że w do {} mam wklepać ten warunek, który określi czy $output to TRUE czy FALSE, a while będzie się wykonywało tak długo aż $output zwróci wreszcie TRUE, jeśli zwróci true to też się wykona po czym cała pętla się zakończy, tak?
Go to the top of the page
+Quote Post
slash^
post 22.03.2015, 14:32:39
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


Dostałeś gotowca na tacy, w 2 postach w 3 wersjach, odpal to z łaski swojej i przetestuj.


--------------------
d(^^)b
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 17:22