{"id":1374,"date":"2015-04-10T11:36:39","date_gmt":"2015-04-10T09:36:39","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=1374"},"modified":"2019-11-08T21:50:16","modified_gmt":"2019-11-08T20:50:16","slug":"java-programozas-4-kiiratas-alapjai","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=1374","title":{"rendered":"Java programoz\u00e1s 4. \u2013 Ki\u00edrat\u00e1s alapjai"},"content":{"rendered":"<p>A programoz\u00e1s sor\u00e1n sokszor az a feladat, hogy valamilyen eredm\u00e9nyt, vagy \u00e9pp v\u00e1ltoz\u00f3k tartalm\u00e1t \u00edrjuk ki a k\u00e9perny\u0151re. A ki\u00edrat\u00e1s egyszer\u0171 kommunik\u00e1ci\u00f3 a program \u00e9s a felhaszn\u00e1l\u00f3 k\u00f6z\u00f6tt. Ennek haszn\u00e1lata egyszer\u0171, de vannak fontos szab\u00e1lyok, melyeket be kell tartani.<\/p>\n<h4>System.out.println() \u00e9s System.out.print()<\/h4>\n<p>Kezdetben ezt a k\u00e9t met\u00f3dust fogjuk ki\u00edrat\u00e1sra haszn\u00e1lni, az alapvet\u0151 ig\u00e9nyeinket teljesen ki fogj\u00e1k szolg\u00e1lni. A Java nyelvben a sz\u00f6vegeket id\u00e9z\u0151jelek &#8220;&#8221; k\u00f6z\u00e9 tessz\u00fck. Nem macskak\u00f6r\u00f6m, ahogy t\u00f6bbsz\u00f6r is hallottam. Na m\u00e9g egyszer: <strong>id\u00e9z\u0151jel<\/strong>.<\/p>\n<p>Amit ilyen jelek k\u00f6z\u00e9 \u00edrunk, azt a rendszer sz\u00f6vegnek tekinti. A ki\u00edrat\u00e1s sor\u00e1n a k\u00e9t met\u00f3dusnak ilyen sz\u00f6vegeket szoktunk megadni, de ezekhez sokszor hozz\u00e1 is f\u0171z\u00fcnk valamit. L\u00e1ssunk akkor erre p\u00e9ld\u00e1kat:<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [5,6]; title: ; notranslate\" title=\"\">\r\nint szam1 = 10;\r\nint szam2 = 20;\r\nint osszeg;\r\nosszeg = szam1 + szam2;\r\nSystem.out.println( &quot;A szamok osszege: &quot; );\r\nSystem.out.println( osszeg );\r\n<\/pre>\n<p>A k\u00e9t kiemelt sorban l\u00e1thatod azt, hogy a println() met\u00f3dusnak odaadhatsz egy sz\u00f6veget is, valamint egy v\u00e1ltoz\u00f3t is. A v\u00e1ltoz\u00f3t a ki\u00edrat\u00e1s sor\u00e1n \u00e1talak\u00edtja sz\u00f6vegg\u00e9, \u00edgy a megjelen\u00edt\u00e9s nem lesz gond. A k\u00e9t sort azonban \u00f6ssze is vonhatod:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nSystem.out.println( &quot;A szamok osszege: &quot; + osszeg );\r\n<\/pre>\n<p>Ebben az esetben az t\u00f6rt\u00e9nik, hogy az \u00f6sszeg v\u00e1ltoz\u00f3 tartalm\u00e1t, ami egy eg\u00e9sz sz\u00e1m, hozz\u00e1f\u0171zi a sz\u00f6veghez \u00fagy, hogy k\u00f6zben \u00e1t is alak\u00edtja azt is sz\u00f6veg t\u00edpus\u00fav\u00e1.<\/p>\n<p><strong>Abban az esetben, amikor a + jel valamelyik oldal\u00e1n sz\u00f6veg tal\u00e1lhat\u00f3, akkor a + jel nem az \u00f6sszead\u00e1s, hanem az \u00f6sszef\u0171z\u00e9s m\u0171velet\u00e9t jelenti!<\/strong><\/p>\n<p>Fontos, hogy az \u00e1talak\u00edt\u00e1s csak a ki\u00edrat\u00e1sra korl\u00e1toz\u00f3dik, az \u00f6sszeg v\u00e1ltoz\u00f3 tov\u00e1bbra is azt az eg\u00e9sz sz\u00e1mot tartalmazza, amivel tov\u00e1bbra is v\u00e9gezhetsz sz\u00e1m\u00edt\u00e1sokat.<\/p>\n<p>Az \u00f6sszef\u0171z\u00e9s tekintet\u00e9ben teljesen mindegy, hogy mi az \u00f6sszef\u0171z\u00e9s sorrendje, maximum a ki\u00edrat\u00e1snak nem lesz \u00e9rtelme:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nSystem.out.println( osszeg + &quot; a szamok osszege.&quot; );\r\n<\/pre>\n<p>Egy fontos probl\u00e9m\u00e1ra felh\u00edvn\u00e1m a figyelmet, ami sokszor gondot jelent. T\u00f6m\u00f6r\u00edts\u00fck m\u00e9g a programunkat, ne sz\u00e1m\u00edtsuk ki k\u00fcl\u00f6n v\u00e1ltoz\u00f3ba az \u00f6sszeget, hanem mag\u00e1ba a ki\u00edrat\u00e1sba tegy\u00fck bele:<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [3]; title: ; notranslate\" title=\"\">\r\nint szam1 = 10;\r\nint szam2 = 20;\r\nSystem.out.println( &quot;A szamok osszege: &quot; + szam1+szam2 );\r\n<\/pre>\n<p>A kiemelt sorban van egy nagyon fontos probl\u00e9ma, de egy picit f\u00e9lreteszem, \u00e9s azonnal visszat\u00e9r\u00fcnk.<\/p>\n<p>N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 programot: adott egy eg\u00e9sz sz\u00e1m, \u00edrjuk ki a k\u00e9tszeres\u00e9t.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint szam = 7;\r\nSystem.out.println( &quot;A szam ketszerese: &quot; + szam * 2 ); \/\/ 14\r\n<\/pre>\n<p>Ez a megold\u00e1s teljesen helyes, \u00e9s semmi gond nincs vele. Most \u00edrjuk ki a sz\u00e1mot \u00fagy, hogy hozz\u00e1adunk kett\u0151t:<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [2]; title: ; notranslate\" title=\"\">\r\nint szam = 7;\r\nSystem.out.println( &quot;A szam kettovel megnovelve: &quot; + szam + 2 ); \/\/ 72???\r\n<\/pre>\n<p>Mi a gond? Azonos rang\u00fa m\u0171veletek eset\u00e9n mi a m\u0171veleti sorrend? Balr\u00f3l jobbra haladunk. Vagyis:<\/p>\n<ol>\n<li>ki\u00edrjuk a sz\u00f6veget: &#8220;A szam kettovel megnovelve: &#8220;<\/li>\n<li>hozz\u00e1f\u0171zz\u00fck ehhez a szam-ot. &#8220;A szam kettovel megnovelve: 7&#8221;<\/li>\n<li><strong>hozz\u00e1f\u0171zz\u00fck<\/strong> ehhez a 2-\u0151t: &#8220;A szam kettovel megnovelve: 72&#8221;<\/li>\n<\/ol>\n<p>Vagyis mivel a m\u0171veletek egyenrang\u00faak, balr\u00f3l-jobbra haladva hatja v\u00e9gre. A sz\u00f6veghez hozz\u00e1f\u0171zi a a v\u00e1ltoz\u00f3t, majd az eg\u00e9szhez a 2-\u0151t. Ezek alapj\u00e1n m\u00e1r \u00e9rtheted az \u00e1tugrott feladatn\u00e1l is mi a gond.<\/p>\n<p>Mit tehet\u00fcnk? B\u00edr\u00e1ljuk fel\u00fcl a m\u0171veleti sorrendet egy egyszer\u0171 z\u00e1r\u00f3jelez\u00e9ssel.<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [2]; title: ; notranslate\" title=\"\">\r\nint szam = 7;\r\nSystem.out.println( &quot;A szam kettovel megnovelve: &quot; + (szam + 2) ); \/\/ 9\r\n<\/pre>\n<p>A szorz\u00e1s eset\u00e9n mi\u00e9rt nem volt gond? Az\u00e9rt, mert el\u0151sz\u00f6r a szorz\u00e1st v\u00e9gezte el, majd annak az eredm\u00e9ny\u00e9t f\u0171zte hozz\u00e1 a sz\u00f6veghez.<\/p>\n<p>A ki\u00edrat\u00e1s sor\u00e1n a sz\u00f6vegben haszn\u00e1lhatunk olyan speci\u00e1lis vez\u00e9rl\u0151 karaktereket, melyek valamilyen plusz funkci\u00f3t adnak hozz\u00e1 a ki\u00edrat\u00e1shoz. Ezekb\u0151l keveset haszn\u00e1lunk t\u00e9nylegesen, de az\u00e9rt felsorolom azokat is, amelyek haszn\u00e1lhat\u00f3k, csak gyakorlati haszna m\u00e1r nincs. Fontos, hogy ezeket a vez\u00e9rl\u0151 karaktereket minden esetben \\ jellel (backslash) vezetj\u00fck be, ami a m\u00f6g\u00f6tte elhelyezked\u0151 karakternek m\u00e1s jelent\u00e9st ad.<\/p>\n<ul>\n<li>\\n &#8211; sordob\u00e1s (\u00faj sort kezd enn\u00e9l a pontn\u00e1l<\/li>\n<li>\\t &#8211; tabul\u00e1tor (alap\u00e9rt\u00e9k \u00e1ltal meghat\u00e1rozott mez\u0151nyit ugrik)<\/li>\n<li>\\b &#8211; backspace (balra egy karakter visszat\u00f6rl\u00e9s)<\/li>\n<li>\\r &#8211; vissza\u00e1ll a kurzor a sor elej\u00e9re, b\u00e1rmit \u00edrunk ezut\u00e1n, a sorban l\u00e9v\u0151 sz\u00f6veget t\u00f6rli<\/li>\n<li>\\a &#8211; n\u00e9h\u00e1ny termin\u00e1lon esetleg megsz\u00f3laltatja a g\u00e9p speaker-j\u00e9t<\/li>\n<li>\\\\ &#8211; maga a \\ karakter<\/li>\n<li>\\&#8221; &#8211; id\u00e9z\u0151jel<\/li>\n<\/ul>\n<p>L\u00e1ssunk erre \u00f6mlesztett p\u00e9ld\u00e1kat, minden k\u00fcl\u00f6n\u00f6sebb magyar\u00e1zat n\u00e9lk\u00fcl:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nSystem.out.println( &quot;foo\\bbar&quot; );\r\nSystem.out.println( &quot;foo\\rbar&quot; );\r\nSystem.out.println( &quot;foo\\nbar&quot; );\r\nSystem.out.println( &quot;Gyakran hasznalt vezerlo karakterek:\\n\\\\n \\\\\\\\ \\\\\\&quot;&quot; );\r\nSystem.out.println(&quot;Elso szam:\\t&quot; + 10);\r\nSystem.out.println(&quot;Masodik szam:\\t&quot; + 20);\r\nSystem.out.println(&quot;Harmadik szam:\\t&quot; + 30);\r\n<\/pre>\n<p>A println() \u00e9s print() met\u00f3dusok k\u00f6z\u00f6tt annyi a k\u00fcl\u00f6nbs\u00e9g, hogy a println() \u00fagy \u00edrja ki az adott sz\u00f6veget, hogy ut\u00e1na \u00faj sort kezd. A print() pedig a kurzort a sor v\u00e9g\u00e9n hagyja, vagyis a ki\u00edrt sz\u00f6vegek egym\u00e1s mell\u00e9 ker\u00fclnek. A p\u00e9ld\u00e1ban azonban ha ism\u00e9t ki\u00edrunk valamit, akkor az k\u00f6zvetlen\u00fcl a Zsolt ut\u00e1n folytat\u00f3dik.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nSystem.out.print(&quot;Kiss &quot;);\r\nSystem.out.print(&quot;Zsolt&quot;);\r\n<\/pre>\n<p>A ki\u00edrat\u00e1sba ak\u00e1r komplexebb dolgok is beleker\u00fclhetnek, erre most csak egy p\u00e9ld\u00e1t \u00edrn\u00e9k, a k\u00e9s\u0151bbi tananyagokban \u00fagyis lesz t\u00f6bb p\u00e9lda is ezekre, melyeket ez alapj\u00e1n meg fogsz \u00e9rteni. Adott k\u00e9t sz\u00e1m, \u00edrd ki a kisebb sz\u00e1m k\u00e9tszeres\u00e9t:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint a = 15;\r\nint b = 20;\r\nSystem.out.println(&quot;A kisebb k\u00e9tszerese: &quot; + Math.min(a,b) * 2);\r\n<\/pre>\n<h4>K\u00f6vetkez\u0151 lecke: <a title=\"Java programoz\u00e1s 5. \u2013 Met\u00f3dusok\" href=\"http:\/\/www.webotlet.hu\/?p=680\">Met\u00f3dusok<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>A programoz\u00e1s sor\u00e1n sokszor az a feladat, hogy valamilyen eredm\u00e9nyt, vagy \u00e9pp v\u00e1ltoz\u00f3k tartalm\u00e1t \u00edrjuk ki a k\u00e9perny\u0151re. A ki\u00edrat\u00e1s egyszer\u0171 kommunik\u00e1ci\u00f3 a program \u00e9s a felhaszn\u00e1l\u00f3 k\u00f6z\u00f6tt. Ennek haszn\u00e1lata egyszer\u0171, de vannak fontos szab\u00e1lyok, melyeket be kell tartani. System.out.println() <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=1374\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s 4. \u2013 Ki\u00edrat\u00e1s alapjai<\/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":[],"class_list":["post-1374","post","type-post","status-publish","format-standard","hentry","category-java-alap-leckek"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1374","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=1374"}],"version-history":[{"count":14,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1374\/revisions"}],"predecessor-version":[{"id":2845,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1374\/revisions\/2845"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}