98
5. Prˇ´ıkazy
je jeho hodnota povazˇova´na za pravdivou. Prvnı´ vy´raz je obvykle nazy´va´n jako inicializacˇnı´, druhy´ vy´raz se nazy´va´ podmı´nka a trˇetı´ reinicializace cyklu. ´RAZ; VY ´RAZ; VY ´RAZ) BLOK for (VY
Nejprve se provede inicializacˇnı´ cˇa´st, pak se vyhodnotı´ podmı´nka, a jestlizˇe je tento vy´raz pravdivy´, provede se BLOK. Potom se provede reinicializace cyklu. Je-li neˇjaka´ promeˇnna´ deklarovana´ v neˇktere´m z vy´razu˚ jako lexika´lneˇ vymezena´, ma´ platnost omezenou pouze na prˇ´ıkaz for. for (my $i = 1; $i <= 10; $i++) { print ”$i na 2 je ”, $i**2, ”\n”; } # to same ´ jako { my $i = 1; while($i <= 10) { print ”$i na 2 je ”, $i**2, ”\n”; } continue { $i++; } } # konc ˇ´ ı platnost prome ˇnne ´ $i
Vsˇechny trˇi vy´razy v kulaty´ch za´vorka´ch za for jsou vyhodnocova´ny ve skala´rnı´m kontextu.
Prˇ´ıkaz foreach ˇNNA ´ postupneˇ na hodnotu prvku˚ Cyklus foreach nastavuje promeˇnnou PROME v SEZNAMu a pro kazˇdou iteraci prova´dı´ BLOK. Vy´raz (seznam) v kulaty´ch za´vorka´ch za foreach je vyhodnocen v seznamove´m kontextu. Nepovinnou cˇa´stı´ cyklu je cˇa´st continue. ˇNNA ´ (SEZNAM) BLOK continue BLOK foreach PROME
Synonymem pro foreach je slovo for, proto je mozˇne´ tyto dva prˇ´ıkazy zameˇnˇovat. Za´lezˇ´ı na programa´torovi, ktere´ slovo uprˇednostnˇuje (zda je mu blizˇsˇ´ı prˇehlednost nebo strucˇnost ve vyjadrˇova´nı´). Platnost promeˇnne´ pouzˇ´ıvane´ pro iterace cyklu se lisˇ´ı podle toho, jaky´m zpu˚sobem byla nadeklarova´na. Pouzˇijeme-li prˇi deklaraci slovo my, promeˇnna´ bude lexika´lneˇ vymezena´ pouze pro blok prˇ´ıkazu˚ cyklu. Budeme-li pracovat s globa´lnı´ promeˇnnou, bude pro tento blok lokalizova´na. Znamena´ to, zˇe obsah te´to promeˇnne´ bude po skoncˇenı´ cyklu obnoven na svou pu˚vodnı´ hodnotu. Promeˇnna´ bude automaticky globa´lnı´ v prˇ´ıpadeˇ, zˇe nebude nadeklarova´na pomocı´ my. Mu˚zˇeme take´ explicitneˇ uve´st slovo our.
Ukázka elektronické knihy, UID: KOS181068