<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-2"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Általában szaglik, ha a ciklus belsejében valamilyen a ciklusváltozóra vonatkozó feltétel van. Gyakran látok olyan kódot amikor a ciklus első , vagy utolsó lefutása esetén tesz valamit másképp a kód. Ilyen esetben felmerül, hogy ez a speciális eset miért van a ciklusban. Egyszerűbb esetben a ciklus inicializálás kell, hogy a ciklus elé kerüljön (ez a jellemzőbb), néha a ciklus után kell még valamit csinálni. Néha összetettebb refaktorálást kíván a dolog, funkciókat ki kell emelni külön metódusba, amíg annyira leegyszerűsödik a ciklus, hogy már látszik, hogy tényleg mi az amit ki lehet és kell emelni a ciklusból.<div class=""><br class=""></div><div class="">Ezek általában jó ujjgyakorlatok. A konkrét példával kapcsolatban is csak az jut eszembe, hogy minden kód jó valamire, ha másra nem, akkor elrettentő példának.</div><div class=""><br class=""></div><div class="">&nbsp; &nbsp;if( record.length &gt;= 3 ){</div><div class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">e.setNev((String) rekord[0]);</blockquote></div></div></div></blockquote><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">e.setNem((String) rekord[1]);</blockquote></div></div></div></blockquote><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">e.setSzulev((int) rekord[2]);</blockquote></div></div></div></blockquote><div class="">}</div><div class=""><br class=""></div>15 helyett 5 sor.</div><div class=""><br class=""></div><div class="">Van viszont egy olyan pattern, ami tipikusan nagyon hasonlít a lenti példához. Ez pedig az, amikor a leprogramozott modell véges automata. Ilyenkor az aktuális állapotot tartalmazó változó van a switch fejében, és az egyes esetek az egyes állapotok. Amikor az egyik állapothoz tartozó kód lefut, és az állapot megváltozik a `break` után a ciklusban -- ami általában végtelen ciklus -- a következő állapothoz tartozó kód indul el.</div><div class=""><br class=""></div><div class=""><br class=""><div apple-content-edited="true" class="">
<div style="color: rgb(0, 0, 0); font-family: Verdana;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; border-spacing: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><span class="Apple-style-span" style="color: rgb(136, 136, 136); ">--</span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "><br class=""></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); ">Dipl. Ing. Peter Verhas</span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "><br class=""></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "><a href="mailto:peter@verhas.com" class="">peter@verhas.com</a></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "><br class=""></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); ">+41791542095</span><span class="Apple-style-span" style="color: rgb(136, 136, 136); "><br class=""></span><span class="Apple-style-span" style="color: rgb(136, 136, 136); ">skype: verhas</span></div></span><br class="Apple-interchange-newline"></div></span></div></span></div></div><br class=""><div><blockquote type="cite" class=""><div class="">On 2014. okt. 19., at 11:25, Zsombor &lt;<a href="mailto:gzsombor@gmail.com" class="">gzsombor@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="">
for (int i = 0; i &lt; adatok.length; i++) {<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e = new Ember();<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Object[] rekord = adatok[i];<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int j = 0; j &lt; rekord.length; j++) {<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (rekord[j] != null) {<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch (j){<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 0:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.setNev((String) rekord[j]);<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.setNem((String) rekord[j]);<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.setSzulev((int) rekord[j]);<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; emberek.add(e);<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; }<br class="">
<br class="">
Józsi<br class="">
<br class=""></blockquote></div><br class=""></div><div class="gmail_extra">Komolyan, for ciklusban egy switch az index változóra? Bocsi, de ez nálam a dupla facepalm-os anti pattern kategória :)<br class=""></div></div></div></blockquote></div><br class=""></div></body></html>