• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy da się przerwać tylko pętlę w while?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
873 wizyt
pytanie zadane 24 marca 2016 w C i C++ przez Philip Bywalec (2,320 p.)
J.w.

np:

while ( coś )

{

for1 ( cos )

{

}

}

Czy istnieje możliwość zatrzymania tylko pętli for1, bo break zatrzymuje wszystko

2 odpowiedzi

+3 głosów
odpowiedź 24 marca 2016 przez Mar Cin Dyskutant (8,900 p.)

Jak byś bardziej sprecyzował te swoje "coś,coś" byłoby znaczniej łatwiej,masz jeszcze instrukcje:

continue;

poprzez to przejdzie do następnej iteracji pętli.

 

komentarz 24 marca 2016 przez niezalogowany
Ale on nie chce przechodzić do następnej iteracji tylko zatrzymać for i przejść do while. Chociaż nie wiem w czym problem bo jak da break w pętli for to zatrzyma tylko for.
komentarz 24 marca 2016 przez Mar Cin Dyskutant (8,900 p.)
aaaaaaaa źle zrozumiałem,mój błąd
komentarz 24 marca 2016 przez Philip Bywalec (2,320 p.)
To u mnie tak sie nie dzieje.
komentarz 24 marca 2016 przez Mar Cin Dyskutant (8,900 p.)


while ( coś )

{

for1 ( cos )

{
break;
}

}
a może break dajesz w ciele while?

 

komentarz 24 marca 2016 przez draghan VIP (106,230 p.)
Break powoduje wyjście tylko o jeden poziom zagnieżdżenia, więc nie ma opcji żeby jednym breakiem przerwać dwie pętle.

Jeśli tak się dzieje, to albo masz błąd w kodzie, albo w pętli for wpływasz na prawdziwość warunku pętli while, w czego efekcie po wyjściu z for pętla while ma fałszywy warunek i więcej nie iteruje.
0 głosów
odpowiedź 24 marca 2016 przez jeremus Maniak (59,720 p.)
uważam że używanie instrukcji break, continue w pętlach (for, while) za bardzo nieeleganckie rozwiązanie

zaciemnia to kod . Wg mnie należy tak definiować warunki aby nie było konieczności przerywania pętli instrukcjami brek/continue

konkretnie : jeśli pętla zawsze musi przelecieć przez wszystkie indeksy - używam for

jeśli ma się skończyć przy pewnych warunkach używam while , i to warunek decyduje o skończeniu pętli

np.

while ( i<n && coś ) i++;  // i gdzie tu potrzeba na użycie break ?
komentarz 24 marca 2016 przez niezalogowany
zaciemnia kod to goto a nie break i continue
komentarz 24 marca 2016 przez jeremus Maniak (59,720 p.)
pozwolę sobie pozostać przy swoim zdaniu :)

widziałem np. przypadki użycia break  wewnątrz konstrukcji

switch

 case :

trochę się to pomieszało z break przewidzianym  w instrukcji switch - efekty były co najmniej dziwne

Nie zdarzyło mi się użyć brak w innym przypadku niż switch.

A pareset tysięcy linijek kodu spłodziłem..
komentarz 24 marca 2016 przez Boshi VIP (100,240 p.)
Prosty przykład, 3 pętle for zgnieżdżone każda do 10.  1 obrót głownej 100 obrotów 3 pętli.  Chcesz przy 50 obrocie przerwać ją na warunek?  Wsadzisz tam while? imo bez sens.
komentarz 24 marca 2016 przez jeremus Maniak (59,720 p.)
oczywiście że while , a czym się niby różni od for ?

i zachowuję  jasną konwencję, której się trzymam ..

for zawsze  jeśli wiadomo ile iteracji

while kiedy nie wiadomo ile iteracji ( warunek przerywa )

czy coś w tym jest nielogicznego ?
komentarz 24 marca 2016 przez Boshi VIP (100,240 p.)
Nielogicznego nie, ale to tylko własna konwencja nic więcej. Ja   staram się nie mieszać pętli między sobą, jak dla mnie brudzi to obraz sytuacji.
komentarz 24 marca 2016 przez jeremus Maniak (59,720 p.)
Jasne, każdy ma swoje przyzwyczajenia i konwencje

Nie narzucam się ze swoim , prezentuję tylko swoją opinię

Podobnie jak z formatowaniem kodu .. :) ale to już inny temat
komentarz 24 marca 2016 przez Boshi VIP (100,240 p.)
Nie ma się co spierać, to są  na tyle marginalne różnice, że to bez znaczenia a daje tylko i wyłącznie komfort programiście ;)
komentarz 8 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
Nie do końca tylko komfort na niższych poziomach abstrakcji to przekłada się na wydajność. Może nie w jakimś dużym stopniu ale przy bardzo hardkorowych optymalizacjach nawet takie rzeczy mają znaczenie.

Podobne pytania

0 głosów
3 odpowiedzi 464 wizyt
0 głosów
1 odpowiedź 1,011 wizyt
pytanie zadane 27 maja 2018 w Python przez El Lirón Obywatel (1,350 p.)
0 głosów
2 odpowiedzi 480 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)

93,190 zapytań

142,205 odpowiedzi

322,031 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...