{"id":334,"date":"2014-04-16T10:02:15","date_gmt":"2014-04-16T08:02:15","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=334"},"modified":"2019-11-08T21:53:10","modified_gmt":"2019-11-08T20:53:10","slug":"java-blokkok","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=334","title":{"rendered":"Java programoz\u00e1s 8. &#8211; Blokkok"},"content":{"rendered":"<h1>Blokkok, avagy utas\u00edt\u00e1sok egy csokorban<\/h1>\n<p>Blokknak nevezz\u00fck azokat a programr\u00e9szeket, melyeket egy speci\u00e1lis hat\u00e1rol\u00f3val \u00f6sszekapcsolunk. A blokk jele a { \u00e9s } jel. Ezek a jelek mindig p\u00e1rban \u00e1llnak, jelzik a blokk elej\u00e9t \u00e9s v\u00e9g\u00e9t. Blokkot nyitni a programban szinte b\u00e1rhol lehet, ahol utas\u00edt\u00e1sokat kell csoportba foglalnunk. De blokkok tartoznak k\u00f6telez\u0151 jelleggel az oszt\u00e1lyokhoz \u00e9s met\u00f3dusokhoz is. Az oszt\u00e1ly \u00e9s met\u00f3dus blokkokra most k\u00fcl\u00f6n nem t\u00e9rn\u00e9k ki, ezeket csak haszn\u00e1ljuk a mintak\u00f3dok alapj\u00e1n. P\u00e9lda a blokkokra:<\/p>\n<pre class=\"brush: java; highlight: [1,7]; title: ; notranslate\" title=\"\">\r\n{\r\n  utas\u00edt\u00e1s1;\r\n  utas\u00edt\u00e1s2;\r\n  ...\r\n  ...\r\n  utas\u00edt\u00e1sN;\r\n}\r\n<\/pre>\n<p>A fenti p\u00e9ld\u00e1ban a kiemelt blokk hat\u00e1rol\u00f3k k\u00f6z\u00e9 foglalt utas\u00edt\u00e1sokat a program mindig egy\u00fctt fogja v\u00e9grehajtani. Amint a program ehhez a ponthoz \u00e9r a program fut\u00e1sa k\u00f6zben, elkezdi soronk\u00e9nt feldolgozni \u0151ket. Ilyen blokkot, ami semmihez nem kapcsol\u00f3dik, a programokban ritk\u00e1n haszn\u00e1lunk, ezek legt\u00f6bbsz\u00f6r valamilyen felt\u00e9telvizsg\u00e1lathoz vagy ciklusokhoz kapcsol\u00f3dnak.<\/p>\n<p>A blokknak nem csak az a szerepe, hogy \u00f6sszefogja az utas\u00edt\u00e1sokat, hanem \u00fagynevezett hat\u00f3k\u00f6rt is meghat\u00e1roz. Ha egy blokkon bel\u00fcl deklar\u00e1lunk egy v\u00e1ltoz\u00f3t, akkor az a v\u00e1ltoz\u00f3 csak \u00e9s kiz\u00e1r\u00f3lag azon a blokkon bel\u00fcl l\u00e9tezik. \u00c9rtelemszer\u0171en a blokk el\u0151tt nem l\u00e9tezhet, hiszen ott m\u00e9g a deklar\u00e1ci\u00f3 sem t\u00f6rt\u00e9nt meg, de a blokk ut\u00e1n sem \u00e9rtelmezhet\u0151, hiszen a v\u00e1ltoz\u00f3 a csak blokkon bel\u00fcl haszn\u00e1lhat\u00f3. \u00c1lljon itt egy elm\u00e9leti p\u00e9lda erre az esetre:<\/p>\n<pre class=\"brush: java; highlight: [5]; title: ; notranslate\" title=\"\">\r\n{\r\n  int i = 10;\r\n  i = i + 5;\r\n}\r\ni = i + 5;\r\n<\/pre>\n<p>A kiemelt sorra a ford\u00edt\u00f3 hib\u00e1t fog jelezni, mert a v\u00e1ltoz\u00f3t a blokkon bel\u00fcl deklar\u00e1ltuk, a blokk ut\u00e1n nem l\u00e9tezik. Ehhez hozz\u00e1tartozik az, hogy a blokk ut\u00e1n \u00fajra deklar\u00e1lhatok egy ugyanilyen v\u00e1ltoz\u00f3t, a kett\u0151 nem fog \u00fctk\u00f6zni, hiszen az el\u0151z\u0151 \u00e9lettartama a blokk ut\u00e1n v\u00e9get \u00e9r, \u00e9s a v\u00e1ltoz\u00f3 nev\u00e9t \u00fajra felhaszn\u00e1lhatom.<\/p>\n<p>A blokkok nem csak t\u00f6bb utas\u00edt\u00e1st foghatnak \u00f6ssze, ak\u00e1r egyetlen utas\u00edt\u00e1st is blokkba lehet foglalni, de olyan is el\u0151fordulhat, hogy a blokk \u00fcres.<\/p>\n<h4>K\u00f6telez\u0151 blokkok<\/h4>\n<p>Att\u00f3l f\u00fcggetlen\u00fcl, hogy egy utas\u00edt\u00e1st nem k\u00f6telez\u0151 blokkba tenni, \u00e9n mindenkinek azt aj\u00e1nlom, hogy egyetlen utas\u00edt\u00e1st is tegyenek { } jelekkel hat\u00e1rolt blokkba. Ez az\u00e9rt fontos, mert a k\u00e9s\u0151bbiekben lehet, hogy az utas\u00edt\u00e1s mell\u00e9 sz\u00fcks\u00e9g lesz egy m\u00e1sikra is, amit ha csak az el\u0151z\u0151 utas\u00edt\u00e1s ut\u00e1n \u00edrunk az m\u00e1r nem lesz megfelel\u0151. Abban az esetben engedett csak meg a r\u00f6vid\u00edt\u00e9s, amikor egy\u00e9rtelm\u0171, hogy a k\u00e9s\u0151bbiekben biztosan nem lesz b\u0151v\u00edt\u00e9s.<\/p>\n<h4>P\u00e9ld\u00e1k<\/h4>\n<p>V\u00e9gezet\u00fcl minden k\u00fcl\u00f6n\u00f6sebb n\u00e9lk\u00fcl \u00e1lljon itt p\u00e1r p\u00e9lda felt\u00e9telvizsg\u00e1lathoz \u00e9s ciklushoz kapcsolt blokkokra, kiemelve a blokkokat. Az utols\u00f3 p\u00e9lda blokkja \u00fcres lesz, ezt a k\u00f3dr\u00e9szt nem magyar\u00e1zn\u00e1m el k\u00fcl\u00f6n\u00f6sebben, a f\u00e1jlkezel\u00e9sn\u00e9l majd tal\u00e1lkozunk vele.<\/p>\n<pre class=\"brush: java; highlight: [3,4,5]; title: ; notranslate\" title=\"\">\r\nint szam = 25;\r\nif( szam % 2 == 0 )\r\n{\r\n  System.out.println(&quot;A szam paros.&quot;);\r\n}\r\n<\/pre>\n<p>&#8212;&#8211;<\/p>\n<pre class=\"brush: java; highlight: [3,4,5,6]; title: ; notranslate\" title=\"\">\r\nint j = 0;\r\nfor( int i = 0; i &lt; 20; i++ )\r\n{\r\n j = i * 2;\r\n System.out.println(j);\r\n}\r\n<\/pre>\n<p>&#8212;&#8211;<\/p>\n<pre class=\"brush: java; highlight: [2,3,4,5]; title: ; notranslate\" title=\"\">\r\nint i = 10; while( i &gt; 0 )\r\n{\r\n  i--;\r\n  System.out.println(i + 1);\r\n}\r\n<\/pre>\n<p>&#8212;&#8211;<\/p>\n<pre class=\"brush: java; highlight: [2,5]; title: ; notranslate\" title=\"\">\r\ntry\r\n{\r\n  ...\r\n  ...\r\n}\r\ncatch( IOException e ) { }\r\n<\/pre>\n<h4>K\u00f6vetkez\u0151 lecke: <a title=\"Java programoz\u00e1s 9. \u2013 Felt\u00e9telvizsg\u00e1latok\" href=\"http:\/\/www.webotlet.hu\/?p=259\">Felt\u00e9telvizsg\u00e1latok<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>Blokkok, avagy utas\u00edt\u00e1sok egy csokorban Blokknak nevezz\u00fck azokat a programr\u00e9szeket, melyeket egy speci\u00e1lis hat\u00e1rol\u00f3val \u00f6sszekapcsolunk. A blokk jele a { \u00e9s } jel. Ezek a jelek mindig p\u00e1rban \u00e1llnak, jelzik a blokk elej\u00e9t \u00e9s v\u00e9g\u00e9t. Blokkot nyitni a programban szinte <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=334\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s 8. &#8211; Blokkok<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[99],"tags":[74,75,144,143],"class_list":["post-334","post","type-post","status-publish","format-standard","hentry","category-java-alap-leckek","tag-blokk","tag-hatokor","tag-java_programozas","tag-programozas"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334"}],"version-history":[{"count":18,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions"}],"predecessor-version":[{"id":2847,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions\/2847"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}