Java - ?, switch (15.díl)

Napsal O webu (») 19. 1. 2008 v kategorii Programování, přečteno: 9947×
obrazky/java_logo.png

Operátor ?

Tento operátor nazýváme ternárním, má tři argumenty. Umožňuje zapsat úplnou podmínku stručnějším, avšak méně přehledným, způsobem. Jeho syntaxe je

Vyraz? Prikaz1: Prikaz2;
Je -li výraz vyhodnocen jako pravdivý, je proveden příkaz1, v opačném případě příkaz2. Podmínku
<code>if (a<b) a++
else b++;</code>

lze tedy zapsat jako
<code>a<b? a++: b++;</code>

Příkaz switch

Příkaz switch představuje přepínač, který umožní větvení programu do více větví. Počet větví není omezen, může být libovolný. V každé větvi se může vyskytovat více příkazů, nemusí být uvedeny v bloku. Strukturu příkazu switch lze zjednodušeně zapsat takto:

<code>switch(vyraz)
{
case konstanta1: Prikaz1;
break;
case konstanta2: Prikaz2;
break;
...
default PrikazX;
}</code>


Syntaxe příkazu je poměrně složitá, uveďme její stručné vysvětlení. Za příkazem switch je uveden výraz, jehož vyhodnocením musí vzniknout celočíselná hodnota. Tělo příkazu tvoří tzv. návěští se syntaxí case konstanta, kde konstanta představuje celočíselnou nebo znakovou konstantu. Za návěštím jsou uvedeny příkazy, které mohou být provedeny. Nejprve je vyhodnocena hodnota výrazu. Poté je vybráno takové návěští, jehož konstanta má stejnou hodnotu jako výraz. Následně se vykoná příkaz umístěný za tímto návěštím. Pokud není nalezeno odpovídající návěští, je vykonán kód nacházející se za návěštím default. Návěští default je však nepovinné, nemusí být uvedeno. Příkaz break je přítomen proto, aby umožnil předčasné ukončení vykonávání těla příkazu switch. Nebyl-li by přítomen, po vykonání větve by došlo k provedení všech následujících větví bez ohledu na hodnoty návěští za příkazy case. Uveďme pro úplnost, že žádná z konstant se v příkazu nesmí opakovat. Podívejme se na následující příklad
ilustrující použití příkazu switch.

<code>switch(znak)
{
case '1':
a++;
a*=;
break;
case '2':
a--;
a/=;
break;
default:
a*=;
break;
}</code>

Na závěr uveďme příklad ilustrující používání podmínek při řešení kvadratické rovnice.

<code>import java.math.*;
public class rovnice
{
public static void main (String [] args)
{
double x1, x2, a=1, b=2, c=3;
double diskr=b*b-4*a*c;
if (diskr>0)
{
x1=-b+Math.sqrt(diskr)/(2*a);
x2=-b/Math.sqrt(diskr)/(2*a);
System.out.println(x1:+x1);
System.out.println(x2:+x2);
}
else if (diskr==0)
{
x1=-b/(2*a);
System.out.println(x1=x2:+x1);
}
else System.out.println(Nema reseni);
}
}</code>


Autor: Filip Koval
Štítky: Java
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel tři a nula