• 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?

Object Storage Arubacloud
0 głosów
643 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 345 wizyt
0 głosów
1 odpowiedź 781 wizyt
pytanie zadane 27 maja 2018 w Python przez El Lirón Obywatel (1,320 p.)
0 głosów
2 odpowiedzi 311 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...