Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Przerywanie instrukcji


Rekomendowane odpowiedzi

Opublikowano

Witam,

 

jak zrobić żeby skrypt powtarzał pewną funkcje JEŚLI i DOPÓKI pewien warunek jest prawdziwy?

 

 

I chodzi mi o coś takiego;

 

If $cos = 5 Then
*rób coś*
*rób coś*
*rób coś
*Powiedzmy że tutaj $cos nie jest już równe 5, więc funkcja przestaje się egzekwować i wykonuje resztę kodu*
*rób coś*
*rób coś*
*rób coś*
EndIf

 

 

P.S. Przepraszam za nazwę tematu, pomyliło mi się.

Opublikowano

Global $imie
Do
$imie = InputBox("","Wpisz imie")
Until $imie = "Marcin"
MsgBox(0,"","Witaj Marcin")

 

Dopóki nie wpiszesz Marcin program będzie powtarzał swoją czynność.

Opublikowano

Nie o to mi chodziło, patrz na pierwszy post.

 

Chodzi mi o taką funkcje która OD RAZU zaprzestaje zadziania jeśli warunek jest nie prawdziwy.

 

W przypadku "Do", skrypt dokończy pętle nawet jeśli warunek nie jest już prawdziwy.

Opublikowano

pseudokod:

if $warunek=0 then
rob cos
rob cos
else
robie cos innego jesli warunek jest rozny od 0
endif

 

 

Przykład:


HotKeySet("{END}","zmien")
GUICreate("aaa",200,140)
$label=GUICtrlCreateLabel(random(0,100),30,50,400,200)
GUISetState(@SW_SHOW)
$warunek=0 ;nizej sie wyjasni do czego ta zmienna posluzy

While 1
if $warunek=0 Then
GUICtrlSetData($label,random(0,100))
Else
GUICtrlSetData($label,"WARUNEK ROZNY OD 0")
EndIf
Sleep(100)

WEnd




func zmien()
if $warunek=0 Then
$warunek=1
Else
$warunek=0
EndIf
EndFunc

 

Masz tu zastosowanie tego zarowno w petli glownej jak i w funkcji zmieniajacej wartosc zmiennej po nacisnieciu END

Opublikowano

Eh, nie o to mi chodzi. Przeczytaj pierwszy post.

 

W przypadku "If" skrypt dokończy funkcje nawet jeśli warunek nie jest już prawdziwy.

 

Pseudokod:

If $warunek=1 then
rob cos
rob cos
*tutaj $warunek jest już równy 0, ale reszta instrukcji i tak się wykona*
rob cos
Else
rob cos
EndIf

 

Proszę czytać ze zrozumieniem :)

Opublikowano

Jak chcesz to podaj nazwę tematu jaka ma być to Ci zmienię. ;)

 

@EDIT

Kod

 

HotKeySet("s", "koniec")

Func koniec()
Exit
EndFunc   ;==>koniec

$czy = True

If $czy = True Then
While 1
	;instrukcje
WEnd
EndIf

 

O to chodzi?

Opublikowano

Użyj pętli do

until

 

wtedy, w pętli wrzucaj tam gdzie ma się zaprzestać działanie instrukcji zawartych w niej to:

if warunek zakonczenia then exitloop

Opublikowano

@Protecto Możesz zmienić nazwę na "Przerywanie instrukcji"? :]

 

I niestety nie o to mi chodzi.

 

Chodzi mi o takie coś;

If warunek=1 Then
akcja 1
akcja 2
akcja 3 *powiedzmy że tutaj warunek się zmieni na 0, chcę zrobić tak żeby akcja 4 NIE została wyegzekwowana*
akcja 4
EndIf

 

Trochę niecodzienne pytanie, ale mam nadzieje że tym razem wyraziłem się zrozumiale :P

 

@Sopelek997

 

Instrukcja ma się zaprzestać kiedy warunek nie będzie już prawdziwy. Jako że nie mogę "zgadnąć" kiedy warunek zmieni się na nieprawdziwy, nie mogę użyć tego;

if warunek zakończenia then exitloop

Opublikowano

Ja bym dał Ifa przed każdą akcją. Czyli.

 

$warunek = True
If $warunek = True Then
;akcja 1
EndIf
If $warunek = True Then
;akcja 2
EndIf
If $warunek = True Then
;akcja 3
EndIf
If $warunek = True Then
;akcja 4
EndIf
If $warunek = True Then
;akcja ...
EndIf
;...

Opublikowano

Eh, wybaczcie za ten zbędny temat, znalazłem rozwiązanie. Zauważyłem że źle przemyślałem funkcjonalność kodu, i nie muszę "przerywać instrukcji".

 

Dzięki za pomoc i proszę o zamknięcie tematu :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...