Skocz do zawartości
PL
Szukaj na Pecetowiczu
  • Utwórz konto

Przerwanie wykonania pętli IF


Przejdź do rekomendacji Rozwiązane przez aXenDev,
Rekomendowane odpowiedzi
(edytowane)

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 komentarza
Udostępnij na innych stronach

  • Rekomendowana odpowiedź
(edytowane)

Zastosuj return w funkcji. Wszystko poniżej się nie wykona.

Edytowane przez aXenDev
Odnośnik do komentarza
Udostępnij na innych stronach

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 komentarza
Udostępnij na innych stronach

@SeNioR To jest dział JS. Nie ma tam czegoś takiego jak exit i die (Chyba że w jakiejś bibliotece).

Odnośnik do komentarza
Udostępnij na innych stronach

@aXenDev ok, myślałem że chodzi o PHP nie spojrzałem na dział. 👍

Odnośnik do komentarza
Udostępnij na innych stronach

(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 komentarza
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 komentarza
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 komentarza
Udostępnij na innych stronach

@iso A możesz napisać dokładnie co chciałabyś uzyskać tym kodem? To że chcesz "przerwać" skrypt okej tylko jak całość wygląda, co ma robić?

Odnośnik do komentarza
Udostępnij na innych stronach

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 komentarza
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 komentarza
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 komentarza
Udostępnij na innych stronach

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 komentarza
Udostępnij na innych stronach

(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 komentarza
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 komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...