Skocz do zawartości
Forum komputerowe

Przerwanie wykonania pętli IF


Przejdź do rozwiązania Rozwiązane przez aXenDev,

Rekomendowane odpowiedzi

Mam kod szkieletowy

if (warunek){
  # wykonaj coś
} else {
  # tu ma być przerwanie wykonania skryptu
}

Teraz pokolei: muszę zamiast drugiewgo komentarza wstawić przerwanie wykonania skryptu. Do pętli IF nie stosuje się instrukcji break, bo to wyłoży kompilator.

Co można zastosować zamiast instrukcji break, tak aby, przy wykryciu negatywnego wyniku warunku, skrypt się zakańczał?

Edytowane przez iso
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Założyciel

Hej. return zwraca wynik, to nie funkcja to konstrukcja językowa ale można jej użyć do przerwania funkcji. Możesz użyć też exit; albo die;

  • exit - zatrzymuje wykonywanie skryptu
  • die - odpowiednik funkcji exit, może zawierać również wiadomość
  • return - zwraca wynik np. funkcji i zatrzymuje funkcję
  • break - zatrzymuje wykonywanie pętli (while) / if
Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)
5 godzin temu, SeNioR napisał:

break - zatrzymuje wykonywanie pętli (while) / if

Instrukcja break ( w tym kontekście ) jest błędna w pętli IF..........
2087950458_Screenshot2021-01-17at16_53_37.png.e2ef48e7323c36d8170934650bfbbf9d.png

5 godzin temu, aXenDev napisał:

Nie ma tam czegoś takiego jak exit i die (Chyba że w jakiejś bibliotece).

die() istnieje w jQuery. Aczkolwiek robi co innego. 

Edytowane przez iso
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
Napisano (edytowane)

Szukaj w Google hasła: return early pattern

https://forum.freecodecamp.org/t/the-return-early-pattern-explained-with-javascript-examples/19364

Edytowane przez -n3veR
Odnośnik do odpowiedzi
Udostępnij na innych stronach

mógłbyś wyjaśnić dokładniej, co masz na myśli? Jak dobrze zrozumiałem, chcesz sprawdzić dwa wyrażenia, z czego drugi z nich ma powodować wyjście z if-a?

if (warunek) {
	// Kod
}

Przecież skrypt zakończy się w momencie niespełnienia warunku - w przypadku, gdy pod spodem nie ma kodu. 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
14 godzin temu, Carnage napisał:

pod spodem nie ma kodu. 

No właśnie chodzi o to że jest kod pod pętlą if. Inaczej: pętla if nie jest ostatnia w kodzie.

14 godzin temu, Carnage napisał:

mógłbyś wyjaśnić dokładniej, co masz na myśli?

Jeśli już to mogłabyś..... jestem kobietą :) Co do meritum to moim celem jest osiągnięcie czegoś co - w przypadku niespełnienia warunku - zakończy przetwarzanie skryptu; bez względu na to co będzie po pętli IF.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
6 godzin temu, iso napisał:

pętla if

IF, to warunek, a nie pętla tak w gwoli ścisłości.

Z tego co wiem, to JS ma problem z wczesnym returnem dla pętel, dlatego też często-gęsto jest pełny warunek if-else.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
W dniu 18.01.2021 o 17:26, -n3veR napisał:

IF, to warunek, a nie pętla tak w gwoli ścisłości.

jednak obstawałabym przy pętli, z uwagi na obecność klamer..... warunki (chyba) ich nie wymagają.

W dniu 18.01.2021 o 17:26, -n3veR napisał:

wczesnym returnem dla pętel,

co konkretnie masz na myśli?

Odnośnik do odpowiedzi
Udostępnij na innych stronach

w każdym języku programowania IF jest instrukcją warunkową tak jak switch. Odpowiedź jest prosta, gdyż sekwencja czynności jest wykonywana tylko raz, sprawdzając tym samym określony warunek. Natomiast wyrażenia w pętlach typu while, do while czy for są powtarzane X razy w zależności od n-iteracji. 

Powracając do głównego wątku, bez kontekstu aplikacji trudno jest wskazać najbardziej optymalne rozwiązanie 🙂 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert

Poprawnym byłoby wstawić `break` w momencie zakończenia wykonywania skryptu jeżeli instrukcja warunkowa - if znajduje się wewnątrz jakiejś pętli. Aczkolwiek czytając stwierdzenie pętla if zaczynam się zastanawiać, co poszło nie tak na etapie uczenia 🙂

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
Napisano (edytowane)

@iso pokaż cały kod jaki masz.

 

20 godzin temu, iso napisał:

(...) z uwagi na obecność klamer (...)

Obecność klamer świadczy o obecności bloku kodu, a nie o tym czy coś jest pętlą... Poza tym, używanie klamer, to dobra praktyka - nawet jeżeli blok ma tylko jedną linijkę.

Edytowane przez -n3veR
Odnośnik do odpowiedzi
Udostępnij na innych stronach
W dniu 24.01.2021 o 15:30, -n3veR napisał:

pokaż cały kod jaki masz.

problem rozwiązany. Kod został doprowadzony do używalności, a następnie poszedł na produkcję gdzie działa (póki co). Ja nie mam dostępu developerskiego do tej instancji. 

Tak czy owak, dzięki za pomoc wszystkim.

Temat można zamknąć.

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...