{"id":360,"date":"2023-12-11T07:09:15","date_gmt":"2023-12-11T06:09:15","guid":{"rendered":"https:\/\/gdm.sosthe.sk\/?page_id=360"},"modified":"2023-12-11T07:09:15","modified_gmt":"2023-12-11T06:09:15","slug":"vetvenie-a-cykly","status":"publish","type":"page","link":"https:\/\/gdm.sosthe.sk\/?page_id=360","title":{"rendered":"Vetvenie a cykly"},"content":{"rendered":"<h3>1. Vetvenie \u2026. IF<\/h3>\n<p>Podmienky s\u00fa v php d\u00f4le\u017eitou s\u00fa\u010das\u0165ou, bez ktorej sa ve\u013ea skriptov nezaob\u00edde. U\u017e z prekladu n\u00e1m je jasn\u00e9, \u017ee \u201e<em>if<\/em>\u201c znamen\u00e1 v predade \u201e<em>ak<\/em>\u201e. Podmienka\u00a0<em>if<\/em>\u00a0zais\u0165uje overenie splnenia alebo nesplnenia zadanej podmienky. Z\u00e1kladn\u00e1 syntax m\u00e1 3 typy z\u00e1pisu (<em>if<\/em>,\u00a0<em>elseif<\/em>,\u00a0<em>else<\/em>). Z\u00e1pis je nasledovn\u00fd:<\/p>\n<pre>if (vyraz1)\r\n  {\r\n  pr\u00edkazy1\r\n  }\r\n  elseif (vyraz2)\r\n  {\r\n  pr\u00edkazy2\r\n  }\r\n  else\r\n  {\r\n  pr\u00edkazy3\r\n  }<\/pre>\n<p>Ak je splnen\u00fd\u00a0<em>v\u00fdraz1 == true<\/em>, vykonaj\u00fa sa\u00a0<em>pr\u00edkazy1<\/em>\u00a0a sko\u010d\u00ed to na koniec skriptu. Ak je splnen\u00fd\u00a0<em>v\u00fdraz2 == true<\/em>, bud\u00fa vykonan\u00e9\u00a0<em>pr\u00edkazy2<\/em>\u00a0(at\u010f.). Ak \u017eiadny v\u00fdraz nie je splnen\u00fd, vyhodnotia sa\u00a0<em>pr\u00edkazy3<\/em>. Samozrejme\u00a0<em>elseif<\/em>\u00a0a\u00a0<em>else<\/em>\u00a0sa nemusia pou\u017ei\u0165. \u010ealej m\u00f4\u017eeme pou\u017ei\u0165 viac\u00a0<em>elseif<\/em>, ale v tomto pr\u00edpade je asi vhodnej\u0161ie vyu\u017ei\u0165 vetvenie\u00a0<em>swith<\/em>, ktor\u00e9 n\u00e1m skript m\u00f4\u017ee zjednodu\u0161i\u0165.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>$a = 8;\r\n  $b = 3;\r\n  $c = 10; \r\n  if ($a+$b &gt; $c)\r\n  echo $a+$b.\" je v\u00e4\u010d\u0161ie ako $c\";\r\n  elseif ($a+$b &lt; $c)\r\n  echo $a+$b.\" je men\u0161ie ako $c\";\r\n  else\r\n  echo \"\u010c\u00edsla neobsahuj\u00fa \u017eiadnu hodnotu\";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>11 je v\u00e4\u010d\u0161ie ako 10<strong><br \/>\n<\/strong><\/p>\n<p><strong>2. Vetvenie \u2026. SWITCH<\/strong><\/p>\n<p>M\u00e1 takmer rovnak\u00fd v\u00fdznam ako\u00a0<em>if<\/em>, ale m\u00f4\u017ee niekedy zjednodu\u0161i\u0165 str\u00e1nku. V\u010faka tomuto pr\u00edkazu sa daj\u00fa nahradi\u0165 dlh\u00e9 pr\u00edkazy\u00a0<em>if<\/em>. Vetva skriptu je dan\u00e1 hodnotou jedn\u00e9ho v\u00fdrazu. Pr\u00edkazom\u00a0<em>break<\/em>\u00a0sa d\u00e1va najavo ukon\u010denie vetvenia (inak by sa vykonali pr\u00edkazy v nasleduj\u00facej vetve). Pr\u00edkazy za\u00a0<em>default<\/em>\u00a0sa vykonaj\u00fa, pokia\u013e v\u00fdraz neodpoved\u00e1 \u017eiadnej podmienke.<\/p>\n<pre>switch (v\u00fdraz)\r\n  {\r\n  case podmienka1:\u00a0\u00a0 ... break;\r\n  case podmienka2:\u00a0\u00a0 ... break;\r\n  case podmienka3:\u00a0\u00a0 ... break;\r\n  default:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ... break;\r\n  }<\/pre>\n<p>Pokia\u013e je\u00a0<em>v\u00fdraz == podmienka1<\/em>: bude vyhodnoten\u00e9 v\u0161etko \u010do je za dvojbodkou. Potom sko\u010d\u00ed na koniec skriptu (<em>break<\/em>). Ak sa v\u00fdraz nebude rovna\u0165 \u017eiadnej z uveden\u00fdch podmienok, bud\u00fa vykonan\u00e9 pr\u00edkazy za\u00a0<em>default:<\/em>.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>$i = 1; \r\n  if ($i == 0)\r\n  print \"i = 0\";\r\n  if ($i == 1)\r\n  print \"i = 1\";\r\n  if ($i == 2)\r\n  print \"i = 2\"; \r\n  echo \"&lt;br \/&gt;-----&lt;br \/&gt;\"; \r\n  switch ($i)\r\n  {\r\n  case 0:\r\n  print \"i = 0\";\r\n  break;\r\n  case 1:\r\n  print \"i = 1\";\r\n  break;\r\n  case 2:\r\n  print \"i = 2\";\r\n  break;\r\n  }<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>i = 1<br \/>\n\u2014\u2013<br \/>\ni = 1<strong><br \/>\n<\/strong><\/p>\n<p><strong>3. Cykly \u2026. WHILE<\/strong><\/p>\n<p>Sl\u00fa\u017ei k vytvoreniu slu\u010dky. Ta opakovane vykon\u00e1va nejak\u00fa \u010das\u0165 k\u00f3du, pokia\u013e bude splnen\u00e1 zadan\u00e1 po\u010diato\u010dn\u00e1 podmienka. Ide o cyklus s podmienkou na za\u010diatku. Najsk\u00f4r je teda vyhodnoten\u00e1 podmienka a potom sa vykonaj\u00fa jednotliv\u00e9 cykly. Pokia\u013e m\u00e1 podmienka hodnotu\u00a0<em>true<\/em>, vykon\u00e1 sa k\u00f3d v tele slu\u010dky, pokia\u013e\u00a0<em>false<\/em>, slu\u010dka skon\u010d\u00ed a vykon\u00e1 sa prv\u00fd pr\u00edkaz za slu\u010dkou. Pokia\u013e chcete vykon\u00e1va\u0165 jen jeden pr\u00edkaz, nemus\u00edte p\u00edsa\u0165 zlo\u017een\u00e9 z\u00e1tvorky. Opusti\u0165 slu\u010dku m\u00f4\u017eete v ktoromko\u013evek mieste pomocou pr\u00edkazu\u00a0<em>break<\/em>. Pokia\u013e je viac vnoren\u00fdch slu\u010diek, tak sa ukon\u010d\u00ed pr\u00e1ve aktu\u00e1lna slu\u010dka. Pokia\u013e chceme napr\u00edklad vysko\u010di\u0165 o 2 slu\u010dky vy\u0161\u0161ie pou\u017eijeme:\u00a0<em>break 2<\/em>. Zvy\u0161ok tela slu\u010dky sa m\u00f4\u017ee presko\u010di\u0165 pr\u00edkazom\u00a0<em>continue<\/em>, vykon\u00e1vanie potom pokra\u010duje \u010fal\u0161\u00edm prechodom slu\u010dkou a vyhodnoten\u00edm podmienky. Op\u00e4\u0165 m\u00f4\u017eeme pou\u017ei\u0165 pr\u00edkaz napr.\u00a0<em>continue 2<\/em>, t\u00fdm presko\u010d\u00edme tel\u00e1 dvoch vnoren\u00fdch slu\u010diek.<\/p>\n<pre>while (podmienka)\r\n  {\r\n  text k\u00f3du\r\n  }\r\n<\/pre>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>$i = 1;\r\n  while ($i &lt;= 10)\r\n  print $i++.\", \";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1, 2, 3, 4, 5, 6, 7, 8, 9, 10,<\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0pou\u017eitie pr\u00edkazu break<\/p>\n<pre>&lt;?php\r\n  $i = 1;\r\n  while ($i &lt;= 5)\r\n  {\r\n  $j = 1;\r\n  while ($j &lt;= 5)\r\n  {\r\n  echo $j.\" | \";\r\n  if($j++ == $i) break;\r\n  }\r\n  $i++;\r\n  echo \"&lt;br \/&gt;\";\r\n  }\r\n  ?&gt;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1 |<br \/>\n1 | 2 |<br \/>\n1 | 2 | 3 |<br \/>\n1 | 2 | 3 | 4 |<br \/>\n1 | 2 | 3 | 4 | 5 |<\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0pou\u017eitie pr\u00edkazu break\u00a0<em>x<\/em><\/p>\n<pre>&lt;?php\r\n  $i = 1;\r\n  while ($i &lt;= 5)\r\n  {\r\n  $j = 1;\r\n  while ($j &lt;= 5)\r\n  {\r\n  echo $j.\" | \";\r\n  if($j++ == $i) break 2;\r\n  }\r\n  $i++;\r\n  echo \"&lt;br \/&gt;\";\r\n  }\r\n  ?&gt;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1 |<\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0pou\u017eitie pr\u00edkazu continue<\/p>\n<pre>&lt;?php\r\n  $i = 1;\r\n  while ($i &lt;= 5)\r\n  {\r\n  $j = 0;\r\n  while ($j &lt;= 4)\r\n  {\r\n  $j++;\r\n  if($j % 2) continue;\r\n  echo $j.\" | \";\r\n  }\r\n  $i++;\r\n  echo \"&lt;br \/&gt;\";\r\n  }\r\n  ?&gt;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>2 | 4 |<br \/>\n2 | 4 |<br \/>\n2 | 4 |<br \/>\n2 | 4 |<br \/>\n2 | 4 |<strong><br \/>\n<\/strong><\/p>\n<p><strong>4. Cykly \u2026. DO \/ WHILE<\/strong><\/p>\n<p>Tento pr\u00edkaz sa podob\u00e1 pr\u00edkazu\u00a0<em>while<\/em>. Jedin\u00fd (dos\u0165 podstatn\u00fd) rozdiel je v tom, \u017ee podmienka sa vyhodnot\u00ed a\u017e po vykonan\u00fd k\u00f3du. Ide teda o cyklus s podmienkou na konci. Je teda posunut\u00fd o jeden cyklus. V tomto pr\u00edpade sa v\u0161ak telo slu\u010dky vykon\u00e1 v\u017edy. V pr\u00edpade pr\u00edkazu\u00a0<em>while<\/em>\u00a0tomu tak nemus\u00ed by\u0165 (pokia\u013e sa hne\u010f prv\u00e1 hodnota nerovn\u00e1 po\u017eadovanej). Op\u00e4\u0165 je mo\u017en\u00e9 pou\u017e\u00edva\u0165 pr\u00edkazy\u00a0<em>break<\/em>\u00a0a\u00a0<em>continue<\/em>\u00a0s rovnak\u00fdm efektom ako pri\u00a0<em>while<\/em>.<\/p>\n<pre>do\r\n  {\r\n  pr\u00edkazy\r\n  }\r\n  while (podmienka);\r\n<\/pre>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>&lt;?php\r\n  $i = 1; \/\/ $i = 7;\r\n  do\r\n  {\r\n  if ($i &lt; 5)\r\n  {\r\n  print \"i nie je dos\u0165 ve\u013ek\u00e9.&lt;br \/&gt;\";\r\n  break;\r\n  }\r\n  $i *= $factor;\r\n  if ($i &lt;$minimum_limit)\r\n  break;\r\n  print \"i je OK\";\r\n  }\r\n  while(0);\r\n  ?&gt;<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em>\u00a0pre i = 1<\/p>\n<p>i nie je dos\u0165 ve\u013ek\u00e9.<em><br \/>\n<\/em><\/p>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em>\u00a0pre i = 7<\/p>\n<p>i je OK<strong><br \/>\n<\/strong><\/p>\n<p><strong>5. Cykly \u2026. FOR<\/strong><\/p>\n<p>Ide o zlo\u017eitej\u0161iu kon\u0161trukciu ne\u017e oby\u010dajn\u00e1 slu\u010dka\u00a0<em>while<\/em>. V\u00fdhodne sa vyu\u017e\u00edva pri zlo\u017eitej\u0161\u00edch cykloch. Pracuje sa s tromi v\u00fdrazmi. Prv\u00fd sa vyhodnocuje iba raz (pri vstupe do slu\u010dky). T\u00fdmto v\u00fdrazom ud\u00e1me po\u010diato\u010dn\u00fa hodnotu pre opakovanie. Druh\u00fdm v\u00fdrazom je podmienka, ktor\u00e1 sa vyhodnocuje pred ka\u017ed\u00fdm vstupom do tela slu\u010dky. Tret\u00ed v\u00fdraz ukazuje o ko\u013eko sa bude premenn\u00e1 zvy\u0161ova\u0165 pri vykon\u00e1van\u00ed slu\u010dky. Klasicky sa nech\u00e1va napr\u00edklad\u00a0<em>i++<\/em>, \u010do znamen\u00e1, \u017ee sa v\u017edy zv\u00e4\u010d\u0161\u00ed o jednotku. Op\u00e4\u0165 je mo\u017enos\u0165 vyu\u017e\u00edva\u0165 pr\u00edkazy\u00a0<em>break<\/em>\u00a0a\u00a0<em>continue<\/em>. Rozdiel je iba v tom, \u017ee pr\u00edkaz\u00a0<em>continue<\/em>\u00a0pred nov\u00fdm vstupom do slu\u010dky zaist\u00ed vykonanie tretieho v\u00fdrazu (<em>$i++<\/em>).<\/p>\n<pre>for ($i=1; $i&lt;$p ; $i++)\r\n  {\r\n  pr\u00edkazy\r\n  }<\/pre>\n<p>Najjednoduch\u0161ou formou je:\u00a0<em>for (;;)<\/em>. Potom ide o nekone\u010dn\u00fd cyklus. Alebo naopak m\u00f4\u017ee by\u0165 pou\u017eit\u00fdch aj viac v\u00fdrazov. Tie sa potom odde\u013euj\u00fa \u010diarkami<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>for ($i=1, $p=15; $i&lt;$p; $i++)\r\n  echo $i.\" | \";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |<em><br \/>\n<\/em><\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>for ($i=1, $p=15; $i&lt;$p; $i++, $p--)\r\n  echo $i.\" | \";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1 | 2 | 3 | 4 | 5 | 6 | 7 |<strong><br \/>\n<\/strong><\/p>\n<p><strong>6. Cykly a polia<\/strong><\/p>\n<p>Cykly sa m\u00f4\u017eu s v\u00fdhodou pou\u017ei\u0165 na v\u00fdpis v\u0161etk\u00fdch (\u010dasti) hodn\u00f4t po\u013ea.<\/p>\n<pre>&lt;?php\r\n  $pole[0] = \"Ahoj \";\r\n  $pole[1] = \"Peter, \";\r\n  $pole[2] = \"ako sa \";\r\n  $pole[3] = \"m\u00e1\u0161?\";\r\n  ?&gt;<\/pre>\n<p>Na v\u00fdpis predch\u00e1dzaj\u00faceho po\u013ea m\u00f4\u017eeme s v\u00fdhodou pou\u017ei\u0165 jednoduch\u00fd z\u00e1pis:<\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0Cyklus for<\/p>\n<pre>&lt;?php\r\n  for ($i=0; $i&lt;count($pole); $i++)\r\n  echo $pole[$i];\r\n  ?&gt;<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Ahoj Peter, ako sa m\u00e1\u0161?<\/p>\n<p>Av\u0161ak ove\u013ea efekt\u00edvnej\u0161\u00ed sp\u00f4sob je tento:<\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0Cyklus while<\/p>\n<pre>&lt;?php\r\n  while (list($key,$value) = each($pole))\r\n  echo $value; \r\n  echo \"&lt;br \/&gt;alebo&lt;br \/&gt;\"; \r\n  reset($pole);\r\n  while (list($key,$value) = each($pole))\r\n  echo \"pole[$key] = $value &lt;br \/&gt;\";\r\n  ?&gt;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Ahoj Peter, ako sa m\u00e1\u0161?<br \/>\nalebo<br \/>\npole[0] = Ahoj<br \/>\npole[1] = Peter,<br \/>\npole[2] = ako sa<br \/>\npole[3] = m\u00e1\u0161?<em><br \/>\n<\/em><\/p>\n<p><em>Pr\u00edklad:<\/em>\u00a0Cyklus foreach<\/p>\n<pre>$arr1 = array(5 =&gt; 43, 32, 56, \"b\" =&gt; 12);\r\n  foreach($arr1 as $kluc =&gt; $hodnota) echo \"\\$arr1[\".$kluc.\"] = \".$hodnota.\"&lt;br \/&gt;\";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>$arr1[5] = 43<br \/>\n$arr1[6] = 32<br \/>\n$arr1[7] = 56<br \/>\n$arr1[b] = 12<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Vetvenie \u2026. IF Podmienky s\u00fa v php d\u00f4le\u017eitou s\u00fa\u010das\u0165ou, bez ktorej sa ve\u013ea skriptov nezaob\u00edde. U\u017e z prekladu n\u00e1m je jasn\u00e9, \u017ee \u201eif\u201c znamen\u00e1 v predade \u201eak\u201e. Podmienka\u00a0if\u00a0zais\u0165uje overenie splnenia alebo nesplnenia zadanej podmienky. Z\u00e1kladn\u00e1 syntax m\u00e1 3 typy z\u00e1pisu (if,\u00a0elseif,\u00a0else). Z\u00e1pis je nasledovn\u00fd: if (vyraz1) { pr\u00edkazy1 } elseif (vyraz2) { pr\u00edkazy2 } [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-360","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=360"}],"version-history":[{"count":1,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/360\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/360\/revisions\/361"}],"wp:attachment":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}