2017-10-04 3 views

Antwort

6

Zeile 1 ausgewertet (falls -1 wahr ist gleich), dann wahr anderes drucken, drucken falsch

Linie 2 wertet -1 (wie Sie gefragt)

Linie 3 wertet wahr drucken (wie Sie gefragt)

-1 wahr ist und 0 ist falsch in VBA

3

Sie könnten auch annehmen, dass eine Zeichenfolge ein Array von Bytes ist oder dass eine 16-Bit-Ganzzahl eine Reihe von 0 und 1 ist.

Die Antwort ist , weil VBA als Sprache eine Abstraktion für boolesche Werte bereitstellt.

Das ist alles da ist es: es kennt und definiert dass True und False sind Boolean Literale; ihre jeweiligen zugrunde liegenden Werte sind nichts anderes als Klempnerarbeit, damit es funktioniert: False wird auf 0 abgebildet und jeder Wert ungleich Null wird in True konvertiert, wobei -1 für boolesche zu numerische Konvertierungen zurückgegeben wird.

IOW, dies ist nicht über Debug.Print, es ist über VBA-Typ-System.

2

Boolesche Variablen werden als 16-Bit- (2-Byte-) Zahlen gespeichert, sie können jedoch nur True oder False sein.

Wenn andere numerische Typen in boolesche Werte konvertiert werden, wird 0 zu False und alle anderen Werte werden True. Wenn boolesche Werte in andere Datentypen konvertiert werden, wird False zu 0 und True zu -1.

Auf Ihrem ersten Debug.Print evaluieren Sie einen Ausdruck (-1 = True), der True ist.

Der zweite gibt einen Integer aus.

Der dritte druckt einen booleschen Wert.

Boolean Data Type

Verwandte Themen