Wpis z mikrobloga

zadałem wczoraj jedno pytanie odnośnie konkretnej pętli w konkretnym programie, ale nie dalej nie udało mi się rozwiązać problemu dlatego zapytam jeszcze raz, tym razem z uproszczonym przykładem. Mam taki kod jak na obrazku, pętla while w pętli while. Dlaczego po wpisaniu imienia "Michał" program nie kończy pracy tylko działa cały czas w tej mniejszej pętli? Przecież jeżeli wpiszę to imię warunek nadrzędnej pętli jest nieprawdziwy, dlaczego cały program wciąż działa?

pastebin: https://pastebin.com/HVudh1Hv

#python
Oake - zadałem wczoraj jedno pytanie odnośnie konkretnej pętli w konkretnym programie...

źródło: comment_16494434891cA8D87LDIamQjrZC96e8g.jpg

Pobierz
  • 7
@Oake: Sam sobie odpowiedziałeś na to pytanie - program działa w tej Twojej "mniejszej pętli", więc nie sprawdza warunków zakończenia nadrzędnych pętli. Warunki te będą sprawdzane dopiero po wyjściu z wewnętrznych pętli.
@twoi_starzy: ok, dzieki, myślałem że działą to w taki sposób że warunek w nadrzędnej pętli sprawdzany jest cały czas. W takim razie jak, będąc w podrzędnej pętli, wyjść z nadrzędnej nie uruchamiając dalszej części kodu ("Końcowy komunikat...)? jeśli break działa w takiej sytuacji to to mnie nie satysfakcjonuje, bo w oryginalnym kodzie mam trzy pętle, chcę wyjść tylko z drugiej i trzeciej pozostając w pierwszej
W takim razie jak, będąc w podrzędnej pętli, wyjść z nadrzędnej nie uruchamiając dalszej części kodu ("Końcowy komunikat...)?


Heh, to jest po prostu problem z logiką kodu. Rzeczy związane z imieniem Marcin wrzuć do if'a z "Marcinem" zamiast "break" i tyle. Obecnie imię "Marcin" przerywa nadrzędną pętlę. To chyba nie tak miało działać skoro "won" ustawia tylko "Michał"? Natomiast dodaj "break" w ifie "Michałem" po "won=". A poza tym polecam jakąś książkę,