frage zu if und and
Übersicht

feuerball11Betreff: frage zu if und and |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
macht es einen unterschied ob ich schreibe:
Code: [AUSKLAPPEN] for bl.bla = each bla if bl\bla = 1 and bl\blo = 1 then blabla endif oder: Code: [AUSKLAPPEN] for bl.bla = each bla if bl\bla = 1 then if bl\blo = 1 then blabla endif endif next vorallem meine ich in thema geschwindigkeit... theoretisch müsste es doch schneller gehen, wenn man nacheinander ausgrentzt, als gleich auf alle werte zu prüfen oder?? |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn man sich das so überlegt, AND braucht auch seine Zeit , eine Operation für den Prozessor.
Achja überlege mal , wieviele Ands du schreiben müsstest um ein tausendstel fps abzuzocken. ^^ Es müsste sowas von wayne sein .. ![]() Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Von der Geschwindigkeit her weiß ich nicht, ob es einen Unterschied macht, aber von der Logik her (schlagt mich wenn ich falsch liege^^) dürfte die erste Lösung schneller sein. Ansonsten kommt es auf dich an, wie du es schöner findest. Verschachtelungen werden nämlich bei der ersten Möglichkeit recht schnell unübersichtlich, finde ich.
Verschachtelung beim ersten: Code: [AUSKLAPPEN] If bla=1 And (bla2=1 Or bla3=1) Then
;sonstwas ElseIf bla=1 and (bla2=2 Or bla3=2) Then ;das andere EndIf Zweite Möglichkeit: Code: [AUSKLAPPEN] If bla=1 Then
If bla2=1 Or bla3=1 Then ;sonstwas ElseIf bla2=2 Or bla3=2 ;das andere EndIf EndIf (Tut mir Leid, dass der Code nicht eingerückt ist, ich habe ihn grad hier reingeschrieben, un da will der halt kein Tab ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also macht es nicht viel von der geschwidigkeit aus oder?? | ||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn bla und blo boolsche binäre Variablen sind, also nur die Werte 0 oder 1 annehmen können, kannste das = 1 auch sparen.
Code: [AUSKLAPPEN] if bl\bla and bl\blo then
in manchen Fällen würde auch sowas gehen, ist aber leicht spaghettihaft: Code: [AUSKLAPPEN] if bl\bla + bl\blo = 2 then
Und warum fragen, was schneller ist, wenn man es mit 5 Zeilen Code selber austesten kann ![]() ![]() |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie kann ich das selber testen?? | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sooo
meine Damen und Herren, hier kommt die so sehr umstrittene Auflösung des heutigen Rätsels.... darf ich vorstellen ? Testo Matus. Code: [AUSKLAPPEN] one=MilliSecs()
For i#=0 To 10000000 If x=1 And y=2 Then bla=2 Next two=MilliSecs() Print two-one Print one Print two Print "nun kommt der zweite test" one=MilliSecs() For i#=0 To 10000000 If x=1 If y=2 bla=2 EndIf EndIf Next two=MilliSecs() Print two-one Print one Print two WaitKey() wie man sieht ist die erste Variante meistens langsamer. Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
^^
ok. geschnallt |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieder was gelernt ![]() |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo | ||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt mal was zum nachdenken
bevor ihr den Code testet schaut es euch an... der Logik nach ist die erste Bedingung "a=1" false und sollte die Function Test() nicht mehr ausführen da es keinen Sinn macht! Code: [AUSKLAPPEN] a=0
If a=1 And Test() = 0 Then bla=0 End If WaitKey Function Test() Print "Wieso ist das so...." End Function Hier nochmal das Gegenstück ohne "And" Code: [AUSKLAPPEN] a=0
If a=1 If Test() = 0 Then bla=0 End If End If WaitKey Function Test() Print "Wieso ist das so...." End Function |
||
[BB2D | BB3D | BB+]
|
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
soweit ich die and verknüpfung verstanden habe, prüft er alle funktionen bei and. | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
in der Tat und bei der Verschachtelten Variente Prüft er schrittweise ![]() |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group