Denkfehler oder Bug?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

SPiRiT

Betreff: Denkfehler oder Bug?

BeitragDo, Apr 20, 2006 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann das bitte jemand nachvollziehen?

Code: [AUSKLAPPEN]
For a=0 To 20
   If a And True Then Print a
Next

Ergebnis:
Code: [AUSKLAPPEN]
1
3
5
7
9
11
13
15
17
19

Da alles ungleich 0 True sein sollte erwarte ich eigentlich als Ergebnis alle Zahlen bis auf die 0 (also von 1-20)

Das liefert die richtigen Ergebnisse
Code: [AUSKLAPPEN]
For a=0 To 20
   If a>0 And True Then Print a
Next


Hab ich ein Denkfehler oder ist das ein BUG?
D7-Team
aktuelles Projekt: strike2Death
 

Mr Hopp

BeitragDo, Apr 20, 2006 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe nicht wirklich, was du mit "True" erreichen möchtest Confused

SPiRiT

BeitragDo, Apr 20, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Mr Hopp hat Folgendes geschrieben:
Ich verstehe nicht wirklich, was du mit "True" erreichen möchtest Confused

Vielleicht so verständlicher
Code: [AUSKLAPPEN]
b=True
For a=0 To 20
   If a And b=True Then Print a
Next

Cardonic

BeitragDo, Apr 20, 2006 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Der logische Verknüpfungsoperator AND vergleicht die entsprechenden Bits in zwei numerischen Ausdrücken und setzt dann das entsprechende Bit in dem Ergebnis zu 1, wenn beide Bits 1 sind. (aus der Online-Hilfe)

Da True das gleiche, wie die Zahl 1 ist und bei allen ungeraden Zahlen das letzte Bit 1 ist, werden nur die ungeraden Zahlen ausgegeben.

mfg Cardonic
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.

SPiRiT

BeitragDo, Apr 20, 2006 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Verstehe, ist also 'AND' in diesem Fall ein Bitweises UND und kein logisches UND.
Liegt aber wohl daran das es kein boolischen Typ gibt, und True=1 ist und somit ein Integerwert. Und der wird eben Bitweise verglichen. Habe daran nicht gedacht.

Danke
D7-Team
aktuelles Projekt: strike2Death

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group