Kleine Entdeckung...
Übersicht

![]() |
TheShadowModeratorBetreff: Kleine Entdeckung... |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab im engl. Forum nun was gefunden...
Code: [AUSKLAPPEN] Function F1:Int() Print "F1" Return True End Function Function F2:Int() Print "F2" Return True End Function If F1() Or F2() Print "TRUE" EndIf Man sieht, dass die 2. Funktion nicht ausgeführt wird. oder hier Code: [AUSKLAPPEN] Strict
Type test Field val:Int EndType Local xxx:test If xxx<>Null And xxx.val=1 Then Print "COOL" Print "OK" wenn xxx NULL ist, dann wird nix weiter gemacht... In Blitz2D/3D/Plus ist es ja nicht so... der 2. Code würde sogar einen Fehler produzieren... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tolle Sache das, ist aber glaube ich schon bekannt ^^ | ||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Also mir war es schon bekannt. ![]() Ich war aber auch sehr verwundert -und entzückt zugleich -, als ich das herausgefunden hatte. *g* |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das untere funktioniert bei mir aber, hast nur vergessen die val Eigenschaft vorher auf 1 zu setzen.
Edit: Achso hab falsch abgeschrieben, du hast ja xxx auf Null gelassen ![]() Bei C# (evtl. auch bei C/C++) ist es aber auch so bei Variablen. Denn es ist ja klar dass die UND-Bedingung nicht erfüllt sein kann wenn das erste schon False ergibt, so muss das zweite gar nicht geprüft werden. Bei Funktionen weiss ich nicht wie es bei C# aussieht, aber ich find auch da sollte die zweite Funktion trotzdem ausgeführt werden. Hat mich bei b3d immer genervt, immer 2 ineinander verschachtelte Ifs wo eins genügen würde... |
||
- Zuletzt bearbeitet von Jolinah am Mo, Okt 03, 2005 14:15, insgesamt 2-mal bearbeitet
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab nix vergessen... das object xxx existiert nähmich gar nicht. und das würde in bb2d/3d/plus zu einem fehler führen - da ich im 2. schritt auf die eigenschaft vom Objekt zugreifen will, was wie gesagt gar nicht existiert... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
C/C++/C# verhält sich identisch wie BMax (oder umgekehrt ![]() Code: [AUSKLAPPEN] #include <iostream>
using namespace std; bool f1(); bool f2(); class test { public: int val; test(); }; test::test() { val = 0; } int main(int argc, char *argv[]) { if (f1() || f2()) cout << "OK" << endl; test *xxx = 0; if (xxx != 0 && xxx->val == 1) cout << "COOL" << endl; char a; cin >> a; return 0; } bool f1() { cout << "f1" << endl; return true; } bool f2() { cout << "f2" << endl; return true; } 1. Nur f1() wird ausgeführt. 2. Es gibt kein Fehler weil xxx = 0 ist und der Rest gar nicht erst abgefragt wird. Ich glaub aber bei Basic war das anders, deshalb gibts in VB .NET unterschiedliche Schlüsselwörter: And = Altes Verhalten welches einen Fehler auslösen würde. AndAlso = Verhalten wie in C/C++/C# |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dies mit AND und OR, sind schon von anfang an bekannt gewesen. Sollte auch so sein wie in C/C++ | ||
Serge |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ach das war bei älteren blitzbasic Versionen nicht der Fall?
Ist ja eigentlich nur logisch, dass man den zweiten teil nicht ausführen braucht wenn sich dadurch nichts ändert ![]() |
||
http://www.dark-matter-soft.de |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
noch kleine Entdeckung:
Code: [AUSKLAPPEN] Function test(v1=1, v2=2, v3=3, v4=4) EndFunction test(, , , 100) was früher mal in BB nicht ging - aber z.B. in QB damals schon, geht nun auch in BlitzMax. Optionale Parameter können komplett weggelassen werden - dies können auch Parameter am Anfang sein. Wenn ihr mehr findet, schreibt sowas hier rein... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Arrr, das nicht benötigte Parameter am Anfang einfach weggelassen werden können wusste ich nicht. Danke! | ||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group