b'\n_START_ARTICLE_\nLoop-switch szekvencia\n_START_PARAGRAPH_\nA loop-switch szekvencia,  avagy for-case paradigma egy programoz\xc3\xa1si antiminta, ahol egy l\xc3\xa9p\xc3\xa9ssorozatot egy ciklus belsej\xc3\xa9ben elhelyezett switch val\xc3\xb3s\xc3\xadt meg, mintha nem lenne ismert az egyes l\xc3\xa9p\xc3\xa9sek sorrendje. A spagetti k\xc3\xb3d speci\xc3\xa1lis esete._NEWLINE_Ha egy ciklusban switch van, az m\xc3\xa9g nem biztos, hogy antiminta. Csak akkor tekinthet\xc5\x91 annak, ha a l\xc3\xa9p\xc3\xa9sek sorrendje ismert. A korrekt megval\xc3\xb3s\xc3\xadt\xc3\xa1sra p\xc3\xa9lda a kontroll megford\xc3\xadt\xc3\xa1sa, \xc3\xa9s egy esem\xc3\xa9nykezel\xc5\x91 m\xc5\xb1k\xc3\xb6dtet\xc3\xa9se. Az esem\xc3\xa9nykezel\xc5\x91 ciklusokban a l\xc3\xa9p\xc3\xa9sek sorrendje ismeretlen ford\xc3\xadt\xc3\xa1si id\xc5\x91ben, mivel azokat a felhaszn\xc3\xa1l\xc3\xb3 v\xc3\xa1lasztja ki. Emiatt a switch val\xc3\xb3ban sz\xc3\xbcks\xc3\xa9ges. L\xc3\xa1sd: esem\xc3\xa9nyvez\xc3\xa9relt programoz\xc3\xa1s, esem\xc3\xa9nykezel\xc5\x91 ciklus, \xc3\xa9s esem\xc3\xa9nyvez\xc3\xa9relt v\xc3\xa9ges \xc3\xa1llapot\xc3\xba g\xc3\xa9p._NEWLINE_A kig\xc3\xb6ngy\xc3\xb6l\xc3\xadtett ciklus hi\xc3\xa1nya okozhat gyeng\xc3\xa9bb performanci\xc3\xa1t, hab\xc3\xa1r ez nem mindig \xc3\xa9rz\xc5\x91dik. M\xc3\xa9gsem a performancia gyeng\xc3\xadt\xc3\xa9se, hanem a rosszabb olvashat\xc3\xb3s\xc3\xa1g a minta legfontosabb k\xc3\xb6vetkezm\xc3\xa9nye. Minden nem trivi\xc3\xa1lis p\xc3\xa9ld\xc3\xa1ban nehezebb meg\xc3\xa9rteni a programr\xc3\xa9szletet, annak c\xc3\xa9lj\xc3\xa1t \xc3\xa9s m\xc5\xb1k\xc3\xb6d\xc3\xa9s\xc3\xa9t, mint egy szekvenci\xc3\xa1t tartalmaz\xc3\xb3 ciklust.\n_START_SECTION_\nP\xc3\xa9lda\n_START_PARAGRAPH_\nA k\xc3\xb6vetkez\xc5\x91 p\xc3\xa9lda egy megfigyel\xc5\x91 interf\xc3\xa9szt val\xc3\xb3s\xc3\xadt meg:_NEWLINE_String key = null;String value = null;List<String> params = null;int column = 0;public void addToken(token) {_NEWLINE__NEWLINE_    // parse a key, a value, then three parameters _NEWLINE_    switch (column) {_NEWLINE_        case 0:_NEWLINE_            params = new LinkedList<String>();_NEWLINE_            key = token;_NEWLINE_            break;_NEWLINE_        case 1:_NEWLINE_            value = token;_NEWLINE_            break;_NEWLINE_        default:_NEWLINE_            params.add(token);_NEWLINE_            break;_NEWLINE_    }_NEWLINE_    if (++column >= 5) {_NEWLINE_        column = 0;_NEWLINE_        completeRow(key, value, params);_NEWLINE_    }}_NEWLINE_Az esem\xc3\xa9nykezel\xc5\x91 n\xc3\xa9lk\xc3\xbcl ez antiminta:_NEWLINE_// parse a key, a value, then three parameters String key = null;String value = null;List<String> params = new LinkedList<String>();for (int i = 0; i < 5; i++) {_NEWLINE_    switch (i) {_NEWLINE_        case 0:_NEWLINE_            key = stream.parse();_NEWLINE_            break;_NEWLINE_        case 1:_NEWLINE_            value = stream.parse();_NEWLINE_            break;_NEWLINE_        default:_NEWLINE_            params.add(stream.parse());_NEWLINE_            break;_NEWLINE_    }}_NEWLINE_A refraktor\xc3\xa1lt megold\xc3\xa1s:_NEWLINE_// parse a key and valueString key = stream.parse();String value = stream.parse();// parse 3 parametersList<String> params = new LinkedList<String>();for (int i = 2; i < 5; i++) {_NEWLINE_    // in practice, that might be written as (i = 0; i < 3; i++),_NEWLINE_    // but for illustration we use the same range of indices here_NEWLINE_    // as in the switch above; the fact that the loop body does_NEWLINE_    // not actually use the value of i proves that the_NEWLINE_    // loop-and-switch construct was superfluous in the example above._NEWLINE_    params.add(stream.parse());}\n_START_SECTION_\nFord\xc3\xadt\xc3\xa1s\n_START_PARAGRAPH_\nEz a sz\xc3\xb3cikk r\xc3\xa9szben vagy eg\xc3\xa9szben  a   Loop-switch sequence c\xc3\xadm\xc5\xb1 angol Wikip\xc3\xa9dia-sz\xc3\xb3cikk ford\xc3\xadt\xc3\xa1s\xc3\xa1n alapul.  Az eredeti cikk szerkeszt\xc5\x91it annak lapt\xc3\xb6rt\xc3\xa9nete sorolja fel.'