Ukončení zpracování nadřazeného cyklu z cyklu vnořeného   zodpovězená otázka

VB.NET

Zdravím všechny.

Mám jeden dotaz. Je možné ve VB nějakým způsobem ukončit z vnořeného cyklu i cyklus nadřazený?

Příklad:

for i as integer = 0 to 10
   for j as integer = 0 to 100
      ' --- Zde se provádí nějaké výpočty a na základě výsledku těchto výpočtů je zapotřebí provést ukončení obou cyklů
      exit for
   exit
next

Exit for uvnitř vnořeného cyklu provede ukončení vnořeného cyklu. Je možné nějak současně s vnořeným cyklem ukončit i cyklus nadřazený?

Díky moc za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se, místo klíčového slova exit ve vnořeném cyklu má samozřejmě být next.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ahoj,

co třeba takto:

for i as integer = 0 to 10
   Dim forExit As Boolean
   forExit = false

   for j as integer = 0 to 100
      ' --- Zde se provádí nějaké výpočty a na základě výsledku těchto výpočtů je zapotřebí provést ukončení obou cyklů

      ' ---zde chces vyskocit ze vseho
      forExit = true
      exit for
   exit

   if forExit then break
next

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Někdo by sice řekl, že to není hezké, ale podle mě ne. Pro tento účel můžete klidně použít GoTo.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Naprosto souhlasím, GoTo je zde vhodné. To ale znamená, že se nesmí používat k náhodnému přeskakování v kódu. S komentářem a vidtelným "doskočištěm" je to v pořádku.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak tak, na tohle je Goto nejlepší. Narazil byste ovšem i na idioty (hlavně na informatických SŠ a VŠ) kteří by vám toto zakázali a nařídili nahradit milionem Boolean proměnných a While cyklů.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Svatá pravda. Pokud je ihned vidět, kam se bude skákat, a má to opodstatnění, tak ho velmi rád používám. Navíc je to rychlejší, než v každém kroku testovat nějakou booleovskou proměnnou.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobrý den,

děkuji Vám všem za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback