wcześniejsze wyjście z pętli FOR

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

wcześniejsze wyjście z pętli FOR

Post autor: Gość »

Cześć
Jestem początkujący i od razu mam takie pytanie. Mam pętle FOR która wykonuje się 10.000 razy, ale w pewnych okolicznościach chcę wyjść z tej pętli wcześniej, zanim indeks dojdzie do 10.000. Jak to zrobić ? Wymyśliłem zastąpienie FOR pętla WHILE, ale jestem ciekawy czy istnieje możliwość wcześniejszego wyjścia właśnie z pętli FOR.
Smooth
Posty: 26
Rejestracja: 06 lip 2005 00:00
Lokalizacja: Dęblin

Re: wcześniejsze wyjście z pętli FOR

Post autor: Smooth »

To raczej niemożliwe i moim zdaniem bez sensu, przecież w pętli while też masz terminal z nr bierzącej iteraji, więc można whilem zrobić wszystko to co forem, że tak powiem - wystarczy dołożyć warunek "> od liczby iteracji" jaka nas interesuje. Nie kombinuj -> tego co wymyślono w prehistorii programowania się nie zmienia. :lol:
Pozdrawiam
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: wcześniejsze wyjście z pętli FOR

Post autor: Gość »

To nie jest kombinowanie. Myślę, że zbyt płytko traktujesz temat. W sumie nie ma róąnicy czy problem dotyczy pętli FOR czy czegokolwiek innego.
Być może pytanie powinno brzmieć:
Jak przerwać wykonywanie się działającego właśnie VI ?
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wcześniejsze wyjście z pętli FOR

Post autor: Mikrobi »

Smooth ma rację. Pętla FOR ma ściśle zdefiniowany sposób dzialania, który mówi o tym, że: - pętla wykona się tyle razy ile wynosi wartość N wprowadzona do górnego terminala (jawna deklaracja pętli) - wykona się tyle razy ile jest elementów w tablicy wprowadzonych przez indeksowany tunel (niejawna deklaracja pętli). Różnica jest, jak najbardziej widoczna w ścisłych definicjach.
Pętla WHILE ma działanie pozwalające na wyjście programu z kodu zawartego wewnątrz pętli (warunek STOP).
Istnieje sposób który pozwoli na "wykonanie" kodu wewnatrz pętli FOR w sposób o jakim myślisz, ale jego zastosowanie świadczy o: - nieznajomości dzialania pętli FOR i WHILE - (i/lub) nieprzemyśleniu struktury programu
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: wcześniejsze wyjście z pętli FOR

Post autor: Gość »

A więc chciałbym poznać ten sposób.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wcześniejsze wyjście z pętli FOR

Post autor: Mikrobi »

Case
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: wcześniejsze wyjście z pętli FOR

Post autor: Gość »

A poza tym - każdy program można napisać w Pascalu nie używając instrukcji GOTO. Mimo to twórcy tego języka przewidzieli możliwość jej stosowania w przypadkach gdy:
- znacznie ułatwi to życie potencjalnemu programiście
- nastąpi nieprzewidziana przez nich sytuacja
Widocznie byli bardziej pokorni niż niektórzy użytkownicy tego forum.

Tak więc zapomnijmy o pętli FOR ... zadam to pytanie w inny sposób:
W jaki sposób można awaryjnie przerwać działanie VI który aktualnie się wykonuje ?
Przykładem testowym niech będzie .... pętla FOR ....
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wcześniejsze wyjście z pętli FOR

Post autor: Mikrobi »

gość pisze:A poza tym - każdy program można napisać w Pascalu nie używając instrukcji GOTO. Mimo to twórcy tego języka przewidzieli możliwość jej stosowania w przypadkach...
Odpowiem tak: "Proponuję zatem Pascala" (poprostu gotuj) ;)
gość pisze: gdy: - znacznie ułatwi to życie potencjalnemu programiście
...który nie przemyślał struktury programu.
gość pisze: - nastąpi nieprzewidziana przez nich sytuacja
...czyli wystąpi konieczność zastosowania pętli WHILE (warunek STOPu związany z ogólnie mówiąc błędem programowym lub sprzętowym).
gość pisze:Tak więc zapomnijmy o pętli FOR ... zadam to pytanie w inny sposób W jaki sposób można awaryjnie przerwać działanie VI który aktualnie się wykonuje ?
Skoro pojawiło się rzeczowe pytanie:
VIServer, węzeł,
metoda Abort VI.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: wcześniejsze wyjście z pętli FOR

Post autor: Gość »

Proponuję zatem zgłębienie problemu Pascala. Tylko ja sam znam klikanaście przypadków kiedy użycie GOTO diametralnie poprawiało czytelność kodu lub wręcz umożliwiło jego wykonanie.

W LabVIEW też zapewne można znaleźć wiele przypadków, kiedy zaproponowana przez Ciebie metoda "Abort VI" będzie użyteczna.

Dziekuję za zainteresowanie tematem.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: wcześniejsze wyjście z pętli FOR

Post autor: jogurt_owocowy »

Długa dyskusja na ten temat jest tutaj. Konkluzje to: 1. Przydałoby się zwiększenie funkcjonalności fora... 2. ... , ale póki break'a w forze nie ma, to żaden problem przystosować do tego while'a, bo w końcu po to on jest.
(...) -"A więc chciałbym poznać ten sposób." -"Case" Przy tym sposobie warto się zastanowić gdzie tego Case'a wstawić i pamiętać, że w LV pętla While to, w nomenklaturze C, Do-While.
Pozdrawiam:)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: wcześniejsze wyjście z pętli FOR

Post autor: jogurt_owocowy »

Oto nastała światłość (lepiej późno, niż wcale)! Życzeniu Gościa i wielu innych użytkowników LV (w tym mnie) stało się zadość - w LabView 8.5 pojawił się w końcu upragniony break w pętli for.
(To tak tytułem aktualizacji tego wątku.)
Awatar użytkownika
Koza
Administrator
Posty: 152
Rejestracja: 20 gru 2006 00:00
Wersja środowiska: LabVIEW 2011
Lokalizacja: Olsztyn

Re: wcześniejsze wyjście z pętli FOR

Post autor: Koza »

Pozwolę sobie przypomnieć raz jeszcze Użytkownikom forum, że jest możliwość składania propozycji zmian/ulepszeń w produktach NI. Jak widać na przykładzie pętli for można sugerować pewne rozwiązania ułatwiające pracę z LabVIEW (i nie tylko).

Tutaj link:
http://digital.ni.com/applications/psc. ... t?OpenForm

(wymaga logowania).

Pozdrawiam,
Koza
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wcześniejsze wyjście z pętli FOR

Post autor: Mikrobi »

A tutajlink do opisu nowej funkcjonalności pętli FOR.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ