Autor Zpráva
David1256
Profil
Dobrý den,

dostalo se mi do rukou zadání typu navrhněte iteraci tak, aby fungovala jako selekce, tedy předělejte for cyklus aby fungoval jako podmínky. Nějak nechápu, co je to za úkol. Jde snad pomocí for nějak udělat stejnou činnost jako pomocí if? V if nabývám hodnot buď true nebo false, takže by se nabízelo udělat for cyklus zhruba i=0; i<2; i++, ale pak se stejně musí testovat, zda se hodnota rovná 0 nebo 1 a to bez if přece stejně neudělám ne? Nebo vás někoho napadá, jaký algoritmus s for by se ač delší mohl chovat stejně jako if?

Děkuji.


Jo ono ta interace by mělo být vlastně while a né for, takže to půjde. Otázka je proč je v náznaku řešení for :-). Zase nějaký pomatený příklad zřejmě...
juriad
Profil
for je jen malinko chytřejší while, takže to krásně půjde i s ním.
emulace while pomocí for:
while(cond) {
  body
}
je stejné jako:
for(;cond;) {
  body
}

emulace for pomocí while:
for(init; cond; step) {
  body
}
je stejné jako:
init;
while(cond) {
  body
  step;
}

řešení pomocí foru, na jeden řádek:
for($b=true; cond && $b; $b=false) {
  body
}
David1256
Profil
Díky za odpověď. Já jsem doteď vymyslel toto řešení.
$i=1;
  while($i==0)
    {
    echo("nepravda");
    $i=2;
    }
  while($i==1)
    {
    echo("pravda");
    $i=2;
    }
Ale to tvoje je fundovanější.


I když teď jak na to koukám, tak pomocí jednoho for nebo jednoho while se může testovat pouze buď true nebo buď false ne? Nejde přece udělat konstrukce for(){prikazy;}else nebo ano? Díky.
juriad
Profil
mnohem elegantnější varianta s while (nemusíš nastavovat žádné proměnné):
while(cond) {
  body
  break;
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: