{"id":259,"date":"2014-04-15T13:54:16","date_gmt":"2014-04-15T11:54:16","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=259"},"modified":"2019-11-08T21:54:30","modified_gmt":"2019-11-08T20:54:30","slug":"java-feltetelvizsgalatok","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=259","title":{"rendered":"Java programoz\u00e1s 9. &#8211; Felt\u00e9telvizsg\u00e1latok"},"content":{"rendered":"<h1>Felt\u00e9telvizsg\u00e1latok, avagy merre menjek?<\/h1>\n<p>A programoz\u00e1si nyelvek egyik alapja az el\u00e1gaz\u00e1s, m\u00e1s n\u00e9ven szelekci\u00f3. Programjainkban szinte minden esetben el\u0151fordul az, hogy valamilyen pontn\u00e1l d\u00f6nteni kell, hogy most erre vagy arra induljunk, ami valamilyen felt\u00e9telt\u0151l f\u00fcgg. P\u00e9ld\u00e1ul:<\/p>\n<ul>\n<li>Ha a sz\u00e1m kisebb, mint 0, akkor a sz\u00e1m negat\u00edv.<\/li>\n<li>Ha a sz\u00e1m kett\u0151vel osztva 0 marad\u00e9kot ad, akkor a sz\u00e1m p\u00e1ros.<\/li>\n<li>Ha a sz\u00e1m a [100;999] intervallumban van, akkor a sz\u00e1m 3 sz\u00e1mjegy\u0171.<\/li>\n<li>Ha a testt\u00f6megindexem 25 vagy att\u00f3l nagyobb, akkor t\u00fals\u00falyos vagyok.<\/li>\n<\/ul>\n<p>Ezek a p\u00e9ld\u00e1k olyan \u00e9rtelemben egyform\u00e1k, hogy bizonyos felt\u00e9tel teljes\u00fcl\u00e9se eset\u00e9n a program elv\u00e9gezhet olyan utas\u00edt\u00e1st, amit a felt\u00e9tel nem teljes\u00fcl\u00e9se eset\u00e9n kihagy.<\/p>\n<p>A felt\u00e9telvizsg\u00e1latokat t\u00f6bb t\u00edpusra bonthatjuk, att\u00f3l f\u00fcgg\u0151en, hogy h\u00e1ny el\u00e1gaz\u00e1sra bomlik \u00e9s hogyan kezelj\u00fck az \u00fagynevezett &#8220;egy\u00e9b&#8221; \u00e1gat. N\u00e9zz\u00fck az els\u0151, legegyszer\u0171bb t\u00edpust:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nif( felt\u00e9tel ) utas\u00edt\u00e1s;\r\n\r\nvagy blokk haszn\u00e1lata eset\u00e9n\r\n\r\nif( feltetel )\r\n{\r\n  utasitas1;\r\n  utasitas2;\r\n  ..\r\n  utas\u00edt\u00e1sN;\r\n}\r\n<\/pre>\n<p>Ezek teh\u00e1t azok az alkalmaz\u00e1si form\u00e1k, melyekn\u00e9l a felt\u00e9tel teljes\u00fcl\u00e9se eset\u00e9n a program v\u00e9grehajtja a felt\u00e9telhez k\u00f6t\u00f6tt utas\u00edt\u00e1st vagy <a title=\"Java blokkok\" href=\"http:\/\/www.webotlet.hu\/?p=334\">utas\u00edt\u00e1sblokkot<\/a>, egy\u00e9bk\u00e9nt nem csin\u00e1l semmit sem, csak \u00e1tugorja \u0151ket. Szem\u00e9ly szerint \u00e9n jobb szeretem az egy utas\u00edt\u00e1sos felt\u00e9telvizsg\u00e1latn\u00e1l is kitenni a blokk hat\u00e1rol\u00f3kat, hogy ha k\u00e9s\u0151bb b\u0151v\u00edteni kell, nehogy kimaradjon. Igaz, ezt ink\u00e1bb a di\u00e1kok miatt teszem \u00edgy, mert n\u00e1luk ez val\u00f3ban gondot szokott okozni, hogy elfelejtik. A felt\u00e9telvizsg\u00e1latok alapja a <a title=\"Logikai m\u0171veletek, logikai kifejez\u00e9sek\" href=\"http:\/\/www.webotlet.hu\/?p=282\">logikai kifejez\u00e9s<\/a>, melyet el\u0151z\u0151leg m\u00e1r ismertettem.<br \/>\nN\u00e9zz\u00fcnk p\u00e1r p\u00e9ld\u00e1t. A kiemelt sorokat k\u00fcl\u00f6n megmagyar\u00e1zom, ezeket \u00e9rdemes megjegyezni az\u00e9rt, mert ezek olyan alapvizsg\u00e1latok, melyekkel sokszor fogsz a programoz\u00e1s sor\u00e1n tal\u00e1lkozni.<\/p>\n<p>Adott egy sz\u00e1m. Vizsg\u00e1ld meg, hogy negat\u00edv-e a sz\u00e1m \u00e9s \u00edrd ki, ha igen.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint szam = 25;\r\nif( szam &lt; 0 )\r\n{\r\n  System.out.println(&quot;A szam negativ.&quot;);\r\n}\r\n<\/pre>\n<p>Adott egy sz\u00e1m. Vizsg\u00e1ld meg, hogy p\u00e1ros-e a sz\u00e1m \u00e9s \u00edrd ki, ha igen.<\/p>\n<pre class=\"brush: java; highlight: [2]; 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>A kiemelt sort \u00e9rdemes megjegyezni, mert ez olyan alapfelt\u00e9tel, amelyikkel sokszor tal\u00e1lkozol majd a programoz\u00e1sban: Ez a p\u00e1ross\u00e1got vizsg\u00e1lja. Ha egy sz\u00e1mot kett\u0151vel osztunk \u00e9s a marad\u00e9k 0, az azt jelenti, hogy a sz\u00e1m p\u00e1ros. Felh\u00edvn\u00e1m a figyelmet itt egy tipikus hib\u00e1ra, amellyel nagyon sokszor tal\u00e1lkozom. Sokan \u00edgy vizsg\u00e1lj\u00e1k a p\u00e1ratlans\u00e1got:<\/p>\n<pre class=\"brush: java; highlight: [2]; title: ; notranslate\" title=\"\">\r\nif( szam % 2 == 1 ) ...\r\n<\/pre>\n<p>Mi ezzel a gond? Negat\u00edv sz\u00e1mok eset\u00e9n ha kett\u0151vel osztom a sz\u00e1mot \u00e9s az p\u00e1ratlan volt, akkor a marad\u00e9k nem 1 lesz, hanem -1, teh\u00e1t ez a felt\u00e9tel a -3 sz\u00e1mot p\u00e1rosnak adn\u00e1 meg, ami nyilv\u00e1nval\u00f3an helytelen. Viszont a marad\u00e9k \u00edgy lehet 1 vagy -1 is, ami mindj\u00e1rt k\u00e9t vizsg\u00e1latot jelent:<\/p>\n<pre class=\"brush: java; highlight: [2]; title: ; notranslate\" title=\"\">\r\nint szam = 25;\r\nif( szam % 2 == 1 || szam % 2 == -1 )\r\n{\r\n  System.out.println(&quot;A szam p\u00e1ratlan.&quot;);\r\n}\r\n<\/pre>\n<p>A kiemelt sorban a k\u00e9t r\u00e9szfelt\u00e9telt (1 vagy -1 a marad\u00e9k) egy LOGIKAI VAGY kapcsolattal k\u00f6ti \u00f6ssze, \u00edgy a program teljesen hib\u00e1tlan lesz. De vegy\u00fck \u00e9szre azt, hogy egy sz\u00e1m csak p\u00e1ros vagy p\u00e1ratlan lehet, m\u00e1s eset nincs. A k\u00e9t eset egym\u00e1s ellentettje. M\u00e1sk\u00e9pp megfogalmazva: ha nem p\u00e1ros, akkor p\u00e1ratlan. \u00cdgy picit egyszer\u0171bb ellen\u0151rizni, hiszen a p\u00e1ross\u00e1got egy felt\u00e9tellel vizsg\u00e1lhatom. L\u00e1ssuk, mire gondolok:<\/p>\n<pre class=\"brush: java; highlight: [2]; title: ; notranslate\" title=\"\">\r\nint szam = 25;\r\nif( szam % 2 != 0 )\r\n{\r\n  System.out.println(&quot;A szam p\u00e1ratlan.&quot;);\r\n}\r\n<\/pre>\n<p>A kiemelt sorban ha a marad\u00e9k nem nulla (ami ugye 1 vagy -1 is lehet), akkor a sz\u00e1m biztosan p\u00e1ratlan. Ezt sem \u00e1rt megjegyezni a k\u00e9s\u0151bbiekre val\u00f3 tekintettel. Adott egy sz\u00e1m. Vizsg\u00e1ld meg, benne van-e ebben az intervallumban: [10;40] \u00e9s \u00edrd ki, ha igen.<\/p>\n<pre class=\"brush: java; highlight: [2]; title: ; notranslate\" title=\"\">\r\nint szam = 25;\r\nif( szam &gt;= 10 &amp;&amp; szam &lt;= 40 )\r\n{\r\n  System.out.println(&quot;A szam benne van az intervallumban.&quot;);\r\n}\r\n<\/pre>\n<p>Az intervallum vizsg\u00e1latn\u00e1l l\u00e1thatod, hogy akkor van benne egy adott sz\u00e1m egy intervallumban, ha annak als\u00f3 hat\u00e1r\u00e1n\u00e1l nagyobb vagy egyenl\u0151 \u00c9S a fels\u0151 hat\u00e1r\u00e1n\u00e1l kisebb vagy egyenl\u0151. Ezt a k\u00e9t r\u00e9szfelt\u00e9telt a LOGIKAI \u00c9S m\u0171velettel kell \u00f6sszek\u00f6tni.<\/p>\n<p>A k\u00f6vetkez\u0151 t\u00edpus\u00fa felt\u00e9telvizsg\u00e1lat az, amikor megjelenik az &#8220;egy\u00e9b&#8221; \u00e1g. Formailag ez a k\u00f6vetkez\u0151k\u00e9pp n\u00e9z ki:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nif( felt\u00e9tel ) utas\u00edt\u00e1s1;\r\nelse utas\u00edt\u00e1s2;\r\n\r\nvagy\r\n\r\nif( feltetel )\r\n{\r\n  utasitas1;\r\n  utasitas2;\r\n  ..\r\n  utas\u00edt\u00e1sN;\r\n}\r\nelse utas\u00edt\u00e1sX;\r\n<\/pre>\n<p>Ebben az esetben szint\u00e9n adott egy felt\u00e9tel, melyhez kapcsol\u00f3dik valamilyen utas\u00edt\u00e1s vagy blokk, de a felt\u00e9tel nem teljes\u00fcl\u00e9se eset\u00e9n is van teend\u0151, ilyenkor az else \u00e1g utas\u00edt\u00e1sai futnak le (v\u00e9grehajt\u00f3dnak). Enn\u00e9l a t\u00edpusn\u00e1l a blokkok haszn\u00e1lata miatt 4 k\u00fcl\u00f6nb\u00f6z\u0151 forma k\u00fcl\u00f6n\u00edthet\u0151 el, de nem fogom mindet felsorolni p\u00e9ld\u00e1val, az utols\u00f3 p\u00e9lda eset\u00e9n l\u00e1thatjuk, hogy ak\u00e1r keverhetj\u00fck az egy utas\u00edt\u00e1sos form\u00e1t az egyik \u00e1g eset\u00e9n blokkhaszn\u00e1lattal a m\u00e1sik \u00e1gn\u00e1l. Fontos az, hogy itt a k\u00e9t \u00e1gb\u00f3l az egyik utas\u00edt\u00e1sai minden esetben lefutnak. Vagy a felt\u00e9telhez k\u00f6t\u00f6ttek, vagy minden m\u00e1s esetben. Ha egy sz\u00e1m nem p\u00e1ros, akkor p\u00e1ratlan. Ha a p\u00e9nzfeldob\u00e1s eredm\u00e9nye nem fej, akkor \u00edr\u00e1s. Ezt a szerkezetet teh\u00e1t olyan esetekben lehet haszn\u00e1lni, amikor az el\u00e1gaz\u00e1s k\u00e9t oldala egym\u00e1s ellentettje. viszont ha egy aut\u00f3 nem benzin\u00fczem\u0171, az nem jelenti azt, hogy csak d\u00edzel lehet.<br \/>\nA k\u00f6vetkez\u0151 esetben m\u00e1r k\u00e9t \u00e1gn\u00e1l is t\u00f6bb l\u00e9tezik. Formailag ez \u00edgy n\u00e9z ki:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nif( felt\u00e9tel1 ) utas\u00edt\u00e1s1;\r\nelse if( felt\u00e9tel2 ) utas\u00edt\u00e1s2;\r\nelse utas\u00edt\u00e1s3;\r\n<\/pre>\n<p>vagy blokkok haszn\u00e1lata eset\u00e9n<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nif( felt\u00e9tel1 )\r\n{\r\n  utas\u00edt\u00e1s1;\r\n  utas\u00edt\u00e1s2;\r\n  ...\r\n  utas\u00edt\u00e1sN;\r\n}\r\nelse if( felt\u00e9tel2 ) utas\u00edt\u00e1sX;\r\nelse\r\n{\r\n  utas\u00edt\u00e1sY;\r\n  utas\u00edt\u00e1sZ;\r\n}\r\n<\/pre>\n<p>Az utols\u00f3 blokkos p\u00e9lda eset\u00e9n l\u00e1thatjuk azt, hogy a blokkok haszn\u00e1lata mindig a p\u00e9ld\u00e1t\u00f3l f\u00fcgg. Ahol t\u00f6bb utas\u00edt\u00e1s kapcsol\u00f3dik egy \u00e1ghoz, oda k\u00f6telez\u0151 blokkot tenni, az egy utas\u00edt\u00e1s\u00fa \u00e1gakhoz nem k\u00f6telez\u0151 (de lehetne).<\/p>\n<p>Ilyen 3 \u00e1g\u00fa el\u00e1gaz\u00e1sra j\u00f3 p\u00e9lda a pozit\u00edv-negat\u00edv vizsg\u00e1lat.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint szam = (int)(Math.random() * 21) - 10;\r\nif( szam &lt; 0 )\r\n{\r\n  System.out.println(&quot;A szam negativ.&quot;);\r\n}\r\nelse if( szam &gt; 0 )\r\n{\r\n  System.out.println(&quot;A szam pozitiv.&quot;);\r\n}\r\nelse\r\n{\r\n  System.out.println(&quot;A szam nulla.&quot;);\r\n}\r\n<\/pre>\n<p>Egym\u00e1st kieg\u00e9sz\u00edt\u0151 \u00e1gak vannak, vagyis egy sz\u00e1m a h\u00e1rom eset valamelyik\u00e9nek megfelel\u0151 lehet. Van else \u00e1g, mert mindenk\u00e9pp valamilyen kateg\u00f3ri\u00e1ba be kell sorolni a sz\u00e1mot, kihagyni nem lehet. Viszont a felt\u00e9teleket m\u00e1sk\u00e9pp is megadhatom, m\u00e1s sorrendben vizsg\u00e1lom, hogy milyen a sz\u00e1m. Ez az else \u00e1gra is hat\u00e1ssal van, hiszen akkor ott m\u00e1st jelent majd az &#8220;egy\u00e9b&#8221;. L\u00e1ssuk akkor az el\u0151z\u0151 p\u00e9lda megold\u00e1s\u00e1t m\u00e1sk\u00e9pp:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint szam = (int)(Math.random() * 21) - 10;\r\nif( szam = 0 )\r\n{\r\n  System.out.println(&quot;A szam nulla.&quot;);\r\n}\r\nelse if( szam &lt; 0 )\r\n{\r\n  System.out.println(&quot;A szam negativ.&quot;);\r\n}\r\nelse\r\n{\r\n  System.out.println(&quot;A szam pozitiv.&quot;);\r\n}\r\n<\/pre>\n<p>A k\u00e9tf\u00e9le felt\u00e9telvizsg\u00e1lat a m\u0171k\u00f6d\u00e9se sor\u00e1n ugyanazokra a sz\u00e1mokra ugyanolyan eredm\u00e9nyeket ad. Egyszer\u0171en csak m\u00e1s sorrendben adtam meg a felt\u00e9teleket. Az else if \u00e1gak sz\u00e1ma nem k\u00f6t\u00f6tt, b\u00e1rmennyit lehet haszn\u00e1lni bel\u0151le. Nem ritka a 6-7 \u00e1g\u00fa felt\u00e9telvizsg\u00e1lat sem.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint honap = (int)(Math.random() * 12) + 1;\r\nif( honap == 3 ||  honap == 4 || honap == 5 )\r\n{\r\n  System.out.println(&quot;Tavasz&quot;);\r\n}\r\nelse if( honap == 6 ||  honap == 7 || honap == 8 )\r\n{\r\n  System.out.println(&quot;Nyar&quot;);\r\n}\r\nelse if( honap == 9 ||  honap == 10 || honap == 11 )\r\n{\r\n  System.out.println(&quot;Osz&quot;);\r\n}\r\nelse\r\n{\r\n  System.out.println(&quot;Tel&quot;);\r\n}\r\n<\/pre>\n<p>Az ilyen t\u00edpus\u00fa t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1latok, ahol egy v\u00e1ltoz\u00f3 k\u00fcl\u00f6nf\u00e9le \u00e9rt\u00e9keit kell vizsg\u00e1lni, k\u00f6nnyebben \u00e9s hat\u00e9konyabban megoldhat\u00f3 egy speci\u00e1lis t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1latnak, melyet switch-nek nevez\u00fcnk. Err\u0151l majd k\u00e9s\u0151bb b\u0151vebben \u00edrok.<\/p>\n<p>V\u00e9gezet\u00fcl j\u00f6jj\u00f6n az a t\u00edpus, amikor csak az if \u00e9s else if \u00e1gak szerepelnek, de else \u00e1g nincs. Adott egy v\u00e1ltoz\u00f3, mely egy sz\u00e1mot, egy adott ember testmagass\u00e1g\u00e1t t\u00e1rolja. Meg kell vizsg\u00e1lni, hogy az illet\u0151 a testmagass\u00e1ga alapj\u00e1n t\u00fal magas vagy t\u00fal alacsony-e. Ha a testmagass\u00e1ga norm\u00e1lis, akkor ne \u00edrjunk ki semmit sem:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/\/ a testmagassag a &#x5B;140;200] intervallumban legyen\r\nint magassag = (int)(Math.random() * 61) + 140;\r\nif( magassag &lt; 160 )\r\n{\r\n  System.out.println(&quot;Tul alacsony&quot;);\r\n}\r\nelse if( magassag &gt; 190 )\r\n{\r\n  System.out.println(&quot;Tul magas&quot;);\r\n}\r\n<\/pre>\n<p>Ilyenkor k\u00e9t egym\u00e1ssal \u00f6sszef\u00fcgg\u0151 felt\u00e9telt vizsg\u00e1lok meg, de nincs else \u00e1g, vagyis lehets\u00e9ges, hogy egyik felt\u00e9tel sem teljes\u00fcl \u00e9s a program kihagyja ezeket az utas\u00edt\u00e1sokat. A programr\u00e9sz 160 alatti magass\u00e1g eset\u00e9n ki\u00edrja a Tul alacsony, 190 felett pedig a Tul magas sz\u00f6veget. \u00c1tlagosnak v\u00e9lt magass\u00e1g eset\u00e9n semmit nem \u00edr ki.<\/p>\n<p>A t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1latok eset\u00e9n minden esetben csak egyetlen \u00e1g utas\u00edt\u00e1sai ker\u00fclnek v\u00e9grehajt\u00e1sra. S\u0151t, nem \u00e9s \u00e9rt\u00e9keli ki az \u00f6sszes felt\u00e9telt a program, az els\u0151 teljes\u00fclt felt\u00e9tel eset\u00e9n v\u00e9grehajtja az ahhoz kapcsolt utas\u00edt\u00e1sokat \u00e9s a t\u00f6bbit automatikusan \u00e1tugorja, meg sem vizsg\u00e1lja. Maradva a h\u00f3napos p\u00e9ld\u00e1n\u00e1l. Ha a h\u00f3nap sz\u00e1ma mondjuk 5, akkor az els\u0151 felt\u00e9tel lesz igaz, ki\u00edrja a program, hogy Tavasz \u00e9s r\u00f6gt\u00f6n az else \u00e1g v\u00e9g\u00e9re ugrik, a t\u00f6bbi esetet nem vizsg\u00e1lja. Nyilv\u00e1n ezt akkor kell \u00edgy megoldani, ha a felt\u00e9telek egym\u00e1st kiz\u00e1r\u00f3 vizsg\u00e1latokat tartalmaznak. Egy h\u00f3nap csak egy \u00e9vszakhoz tartozik, \u00e9s ha megvan a megfelel\u0151 \u00e9vszak, a t\u00f6bbi vizsg\u00e1lat felesleges. N\u00e9zz\u00fck ugyanezt a h\u00f3napvizsg\u00e1latot m\u00e1sk\u00e9pp:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint honap = (int)(Math.random() * 12) + 1;\r\nif( honap == 3 ||  honap == 4 || honap == 5 )\r\n{\r\n  System.out.println(&quot;Tavasz&quot;);\r\n}\r\nif( honap == 6 ||  honap == 7 || honap == 8 )\r\n{\r\n  System.out.println(&quot;Nyar&quot;);\r\n}\r\nif( honap == 9 ||  honap == 10 || honap == 11 )\r\n{\r\n  System.out.println(&quot;Osz&quot;);\r\n}\r\nif( honap == 12 ||  honap == 1 || honap == 2 )\r\n{\r\n  System.out.println(&quot;Tel&quot;);\r\n}\r\n<\/pre>\n<p>Ez is ugyanazt eredm\u00e9nyezi, csak itt egyr\u00e9szt nincs else \u00e1g, teh\u00e1t a Tel \u00e9vszakot is k\u00fcl\u00f6n meg kell vizsg\u00e1lni, m\u00e1sr\u00e9szt itt hi\u00e1ba teljes\u00fcl 4. h\u00f3nap miatt az els\u0151 felt\u00e9tel, mivel a t\u00f6bbi felt\u00e9tel nem az els\u0151 el\u00e1gaz\u00e1sa (nem else if \u00e1gak), ez\u00e9rt ilyenkor minden felt\u00e9telt a t\u00f6bbit\u0151l f\u00fcggetlen\u00fcl megvizsg\u00e1l teljesen feleslegesen. Ez ugyanis nem egy t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1lat, hanem 4 egym\u00e1st\u00f3l f\u00fcggetlen eset, melyeknek semmi k\u00f6ze egym\u00e1shoz. Az \u00f6sszef\u00fcgg\u0151 t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1lat eset\u00e9n sem mindig mindegy, hogy milyen sorrendben adom meg a vizsg\u00e1lt felt\u00e9teleket. Erre j\u00f3 p\u00e9lda a sz\u00f6k\u0151\u00e9v vizsg\u00e1lat, amit majd k\u00fcl\u00f6n feladatk\u00e9nt ismertetek. \u00c1lljon itt akkor egy p\u00e9lda f\u00fcggetlen \u00e9s egy t\u00f6bb\u00e1g\u00fa felt\u00e9telvizsg\u00e1latra:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/\/ 1. p\u00e9lda\r\nint szam = (int)(Math.random() * 50) + 1;\r\nif( szam % 3 == 0 )\r\n{\r\n  System.out.println(&quot;A szam oszthato harommal.&quot;);\r\n}\r\nif( szam % 5 == 0 )\r\n{\r\n  System.out.println(&quot;A szam oszthato ottel.&quot;);\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/\/ 2. p\u00e9lda\r\nint szam = (int)(Math.random() * 50) + 1;\r\nif( szam % 3 == 0 )\r\n{\r\n  System.out.println(&quot;A szam oszthato harommal.&quot;);\r\n}\r\nelse if( szam % 5 == 0 )\r\n{\r\n  System.out.println(&quot;A szam oszthato ottel.&quot;);\r\n}\r\n<\/pre>\n<p>N\u00e9zz\u00fck meg mit \u00edr ki az 1. \u00e9s a 2. p\u00e9lda a k\u00f6vetkez\u0151 sz\u00e1mokra:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Szam<\/th>\n<th>1. p\u00e9lda<br \/>\nf\u00fcggetlen<\/th>\n<th>2. p\u00e9lda<br \/>\nt\u00f6bb\u00e1g\u00fa<\/th>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>A szam oszthato ottel.<\/td>\n<td>A szam oszthato ottel.<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>A szam oszthato harommal.<\/td>\n<td>A szam oszthato harommal.<\/td>\n<\/tr>\n<tr>\n<td>15<\/td>\n<td>A szam oszthato harommal.<br \/>\nA szam oszthato ottel.<\/td>\n<td>A szam oszthato harommal.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A probl\u00e9ma a 15-\u00f6s sz\u00e1mn\u00e1l bukik ki, amikor a sz\u00e1m mindk\u00e9t felt\u00e9telnek megfelel. Az 1. p\u00e9lda megvizsg\u00e1lja a 3-mal oszthat\u00f3s\u00e1got \u00e9s az 5-tel oszthat\u00f3s\u00e1got is minden esetben. A t\u00f6bb\u00e1g\u00fa ellen\u0151rz\u00e9s eset\u00e9n a 15-re teljes\u00fcl a 3-mal oszthat\u00f3s\u00e1g &#8211; amit a program ki is \u00edr &#8211; de az 5-tel oszthat\u00f3s\u00e1got m\u00e1r meg sem vizsg\u00e1lja, hiszen t\u00f6bb\u00e1g\u00fa vizsg\u00e1lat eset\u00e9n csak akkor vizsg\u00e1lja a tov\u00e1bbi felt\u00e9teleket a program, ha az el\u0151z\u0151ek k\u00f6z\u00fcl egyik sem teljes\u00fclt. A vizsg\u00e1lat els\u0151 igaz felt\u00e9teln\u00e9l meg fog \u00e1llni! Ilyenkor a f\u00fcggetlen ellen\u0151rz\u00e9s a j\u00f3 megold\u00e1s, hiszen nem egym\u00e1st kiz\u00e1r\u00f3 felt\u00e9telekr\u0151l van sz\u00f3, hiszen a 15 mindk\u00e9t sz\u00e1mmal oszthat\u00f3.<\/p>\n<h4>K\u00f6vetkez\u0151 lecke: <a href=\"http:\/\/www.webotlet.hu\/?p=2096\">Switch<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>Felt\u00e9telvizsg\u00e1latok, avagy merre menjek? A programoz\u00e1si nyelvek egyik alapja az el\u00e1gaz\u00e1s, m\u00e1s n\u00e9ven szelekci\u00f3. Programjainkban szinte minden esetben el\u0151fordul az, hogy valamilyen pontn\u00e1l d\u00f6nteni kell, hogy most erre vagy arra induljunk, ami valamilyen felt\u00e9telt\u0151l f\u00fcgg. P\u00e9ld\u00e1ul: Ha a sz\u00e1m kisebb, <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=259\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s 9. &#8211; Felt\u00e9telvizsg\u00e1latok<\/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":[81,82,42,80,144,143],"class_list":["post-259","post","type-post","status-publish","format-standard","hentry","category-java-alap-leckek","tag-else","tag-else-if","tag-feltetel","tag-if","tag-java_programozas","tag-programozas"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/259","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=259"}],"version-history":[{"count":66,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/259\/revisions"}],"predecessor-version":[{"id":2848,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/259\/revisions\/2848"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}