Schleifen - Abfragen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Chrise

Betreff: Schleifen - Abfragen

BeitragSo, Mai 10, 2009 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Gibt es eine geschicktere Möglichkeit als die unten vorgeführte, um Werte aus beispielsweise einem Dim-Feld abzufragen, um einen Gesamtwert zu einer gewollten Endabfrage zu erreichen?
Sorry, aber ich weiß nicht konkret, wie ich mein Problem ausdrücken sollte ^^

Vorallem die Hilfsvariable "EndValue" stört mich ein wenig...

BlitzBasic: [AUSKLAPPEN]

EndValue=0
For Index=0 To 10
If Test(Index)>0 Then EndValue=1
Next
If EndValue=1 Then
;tu dies, tu das
Else
;tu was ganz anderes
EndIf


In dem Falle Frage ich also ab, ob alle Werte größer als Null sind. Sobald also nur ein Wert des Dim-Feldes größer 0 ist, ist die Variable EndValue=1.

Kennt jemand von euch etwas geschickteres, oder ist das bereits die effizienteste Methode?

danke!
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

ozzi789

BeitragSo, Mai 10, 2009 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne ich würde sagen das ist ziemlich effizienst, weil man eh alle Felder durchgehe muss Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Chrise

BeitragSo, Mai 10, 2009 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ui, das ging aber schnell ^^
Och, schade, hatte vielleicht auf einen Kniff à la BlitzBasic: [AUSKLAPPEN]
If Test(0-10) Then
gehofft xD
Na, dann kann ich das so lassen.

Danke für die flotte Antwort Wink
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

Xeres

Moderator

BeitragSo, Mai 10, 2009 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit exit kannst du die Schleife abbrechen - könnte bei längeren Schleifen sinnvoll sein.
Code: [AUSKLAPPEN]
Dim test(10)
Local i, EndValue=0
For i=0 To 10
   If test(i)>0 Then
      EndValue=EndValue+1
   Else
      Exit
   EndIf
Next

If EndValue=11 Then
   Print("Alle Felder größer 0")
Else
   Print("Nicht alle Felder sind größer 0")
EndIf

WaitKey()


Edit: Ah, mein Fehler... mitzählen ist in der Tat nicht nötig - Exit kann man aber trotzdem benutzen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Chrise

BeitragSo, Mai 10, 2009 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Aie! Exit, das ist eine gute Idee ^^
Danke vielmals! Smile
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group