Větvení programu (podmíněné příkazy)

Často je v programech potřeba, aby se některé příkazy vykonaly jen při splnění dané podmínky, nebo aby se jedny příkazy vykonaly při splnění podmínky, zatímco při nesplnění podmínky se vykonaly jiné - říká se tomu podmíněné příkazy a využívají se příkazy pro větvení programů. Ve většině programovacích jazyků k tomuto účelu existuje příkaz IF.


Základní syntaxe příkazu IF je v PHP jednoduchá:
if (podmínka) příkaz;
neboli - je-li splněna podmínka, potom vykonej příkaz. Další možnost vypadá takto:
if (podmínka) příkaz1; else příkaz2;
což znamená - je-li splněna podmínka, vykonej příkaz1, jinak (není-li splněna podmínka) vykonej příkaz2.

Jednoduchá kontrola zadaného hesla na přihlašovacím formuláři při vstupu na vaši "důvěrnou" stránku by mohla vypadat takto:
<?php if ($heslo=="1234") echo "Jste přihlášen"; else echo"Chybné heslo!"; ?>
Překládám jen pro jistotu - je-li zadáno 1234, potom se vypíše první hláška, jinak se vypíše druhá hláška (samozřejmě ve skutečné situaci by jen vypsání podobných hlášek nestačilo).
Všimněte si, že pro porovnání bylo použito znaménko == , tedy dvě rovnítka a nikoli jedno rovnítko, to se používá pro vložení (přiřazení) hodnoty do proměnné (viz minulá lekce)! Pro porovnávání hodnot v podmínkách můžete používat tyto operátory (znaménka):
== - rovná se
!= nebo <> - nerovná se
> (resp. <) - větší (resp. menší)
>= (resp. <=) - větší nebo rovno (resp. menší nebo rovno)

Pomocí příkazu if můžeme jednoduchou kalkulačku z minulé lekce doplnit o další početní operace.

Kalkulačka

Pro vylepšení kalkulačky je nejprve potřeba doplnit vstupní formulář o možnost výběru početní operace, v ukázce je použitý input type radio:
<form name="kalkulator" action="vypocet2.php" method="post">
Vyberte operaci:
<input type="radio" name="operace" value="součet"> sčítání
<input type="radio" name="operace" value="rozdíl"> odčítání
<input type="radio" name="operace" value="součin"> násobení
<input type="radio" name="operace" value="podíl"> dělení
<br /><br />
Zadejte čísla pro výpočet:
<input type="text" name="oper1" value="" />
<input type="text" name="oper2" value="" />
<br /><br />
<input type="submit" value="vypočti" />
</form>


V minulé lekci jsme uložili tuto stránku jako php, i když jsme ji mohli uložit jako html, protože v ní žádný kód php není. Vlastní výpočet bude provádět vypocet2.php - viz parametr action. Jádro této strány by mohlo vypadat takto:
<?php
$operace=$_POST["operace"]; //načtení názvu operace
$oper1=$_POST["oper1"]; //první číslo (operand)
$oper2=$_POST["oper2"]; //druhé číslo (operand)
?>
<h1>Kalkulačka</h1>
První číslo: <?php echo ($oper1); ?><br />
Druhé číslo: <?php echo ($oper2); ?><br />
==========================<br />
Výpočet:
<?php
if ($operace=="součet") echo "$oper1 + $oper2 = ", $oper1+$oper2;
if ($operace=="rozdíl") echo "$oper1 - $oper2 = ", $oper1-$oper2; ?> <br />
<p><a href=kalkulacka2.php>Zpět k zadání</a> </p>


V programu se nejprve načtou z pole $_POST název početní operace a obě zadaná čísla. Potom se vypíše nadpis Kalkulačka (html), pod ním hodnoty obou čísel, další kousek textu v html a potom php vypíše podle názvu operace příslušný řádek výpočtu.


Úkoly (pokud vás napadnou i jiné úlohy, můžete za ně získat další body):

Úkol (2 body)

Vytvořte kalkulačku podle textu lekce. Možná jste si všimli, že chybí výpočet součinu a podílu, doplňte je.

Úkol (2 body)

Vytvořte aplikaci pro převod buď km/h na m/s nebo obráceně podle výběru.

Úkol (4 body)

Vytvořte aplikaci pro převod stupňů Celsia na stupně Kelvína a Fahrenheita či obráceně dle výběru (pozn.: °C = °K-273,15 , °F = 9/5*°C+32)

Úkol (body podle rozsahu)

Vytvořte on-line MATEMATICKÉ TABULKY s možností výpočtu obvodu a obsahu základních geometrických útvarů. (Můžete se podívat na ukázku tabulek D. Vásquezové, 9.C, 2007/8)

Název školy:Základní škola, Hradec Králové, M. Horákové 258
Název projektu:EU peníze školám
Číslo projektu:CZ.1.07/1.4.00/21.2575
Téma:Programování v PHP
Název:VY_32_INOVACE_04_10A_PHP4
Autor:Pavel Petr
Použité zdroje: Není-li uvedeno jinak, jsou všechny ilustrační obrázky dílem autora.