| |
|
|
- Página 1 - |
|
 Nico Madysa |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
 Michael Wodrich | Öhhhmm 
Wenn uno sowohl en el IF-Teil como auch en allen otro Zweigen el gleichen Valor benutzt, entonces auch Yo en el Schleudern kommen...
y en Funktionsaufrufen fehlt XProfan bastante offensichtlich el Glaskugel - also aufrufen y schauen qué esta heraus kommt...
Welche Lenguaje de programación va porque hier anders antes - y cómo genau...
Saludo Michael Wodrich KompilierenMarcaSeparación |
|
|
|
|
 Michael Wodrich | |
|
|
|
 Nico Madysa | ¡Hola Michael,
así bastante jede Lingua, el me spontan einfällt, führt el Ausdrücke en un elseif-Zweig sólo de, si todos Ausdrücke davor falso ergeben haben.
En el C-artigen Idiomas es el automáticamente el Fall, porque deren elseif sí gerade nichts Anderes como verschachtelte Ifs son.
Posesiones auch eben Python getestet:
a = 0
if a == 0:
print "Division durch Null verboten!"
elif 3 / a > 8:
print "Dieser Zweig wird nie erreicht, da a Null
stürzt no de. Como el erste Condición ya erfüllt es, se el zweite nada sólo getestet. Das analoge Gegenstück bajo XProfan stürzt con un Division-por-Null-Fehler de. |
|
|
| |
|
|
|
 Michael Wodrich | Hier arbeitet XProfan also genau anders herum como C:
- en el If-ElseIf fällt XProfan por para nächsten Block - y en el Select-Case es dies en C el Fall (deshalb muss hay en el Block siempre con BREAK gestoppt voluntad)
Solange el Bedingungen vollkommen unterschiedlich son, fällt lo en efecto niemandem en, que aquí algo de el Ruder se ejecuta.
In gewollter Form debería dies aber sólo en el einzeiligen CASE(NOT) así ser - hier puede entonces mehrere ähnliche oder gleiche Fälle abgehandelt voluntad.
Roland hat's se sí ya durchgelesen... |
|
|
| |
|
|
|
 RGH | ¡Hola, auch si una erfolgreichen IF el Vergleich beim darauffolgenden ELSEIF tatsächlich todavía una vez ausgeführt se, se él todavía no ausgewertet. Das heißt, el Programa verhält se como esperado y führt sólo el código después de el ersten erfolgreichen Vergleich de: KompilierenMarcaSeparación |
|
|
|
|
 Nico Madysa | Hola Roland,
dass de los entsprechenden Befehlsblöcke sólo el erste ausgeführt se, dessen Condición zutrifft, es selbstverständlich. Alles Andere wäre sí wirklich una Skandal. 
Worum lo me viel mehr va, es, wann genau el Bedingungen ausgewertet voluntad. Es en zwei Situationen wichtig:
1. Wenn una Función en el Condición es, el irgendwelche Nebenwirkungen ha. KompilierenMarcaSeparación
if SomeAPICall()' gibt 0 aus, falls was schief gegangen ist.
print "Juchuu, alles in Ordnung!"
elseif MessageBox("Hat nicht geklappt. Beenden?", "", ~MB_YESNO) = ~IDNO
print "Trotz Fehler weitermachen."
else
print "Programm wird beendet."
end
KompilierenMarcaSeparación trabajo en XProfan no.
Kurz y bien: In If-Elseif-Estructuras halte Yo para muy sinnvoll, todos más Bedingungen a ignorieren, sobald una verdadero ergibt.
En boolschen Operatoren halte Yo auch para sinnvoll, aber como puede el Meinungen unterschiedlich ser.
Wichtig es sólo, dass el Documentación irgendwo erwähnt, como XProfan se verhält. Damit uno no en el Dunkeln tapst. |
|
|
| |
|
|
|
 RGH | Sí, actualmente wertet XProfan tatsächlich auch el otro Bedingungen de. Pero esto es ya siempre así gewesen, auch si en el Tat no notwendig es y anders incluso vermutlich algo flotter wäre. (Das macht el entspechenden Delphi-Code en XProfan sólo deutlich einfacher. Sorry.) Hier es una Änderung aber sicher posible. Aunque halte Yo Code, el deratige Características con "Nebenwirkungen" en Bedingungen oder Boolschen Ausdrücken enthält no para sonderlich übersichtlich.
Zu el Boolschen Operatoren: In Delphi puede ser tatsächlich por Compilerschalter einstellen, si siempre todos Argumente ausgewertet voluntad oder sólo así weit, a el Ergebnis feststeht. Yo lo siempre en "alle Argumente" eingestellt y XProfan es auch así realisiert. Aber auch hier wäre lo sicher posible, beide Varianten anzubieten.
Yo versuche veces, me beide Dinge para el kommende Versión X3 a merken.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 25.02.2014 ▲ |
|
|
|
|
 Nico Madysa | Alles klar, danke para la respuesta rápida. Como ya dijo, letztendlich son beide Vorgehensweisen (vollständige y Kurzschlussauswertung) gangbare Alternativen. Aber wichtig es sólo, dass el Programmierer auch irgendwo darüber aufgeklärt se.
Saludo,
Nico |
|
|
| |
|
|
|
 RGH | ... y el Sache con el ELSEIF se en el nächsten XProfan-Versión (X3) y FreeProfan korrigiert! Sobald una Zweig erfüllt wurde, voluntad el übrigen Bedingungen no mehr abgefragt.
Saludo Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 26.02.2014 ▲ |
|
|
|
|
 Nico Madysa | Vergiss no, el gleiche Comportamiento auch para Select einzubauen. Sombrero zwar absolut Null Anwendungsorientierung, aber el Letzte, qué wir brauchen, son todavía mehr Inkonsistenzen.  |
|
|
| |
|
|
|
 RGH | ... y en SELECT nun entsprechend adaptado!
Saludo Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 25.09.2014 ▲ |
|
|
|
| |
|
- Página 2 - |
|
|
 Michael W. | RGH (25.02.14)
Zu el Boolschen Operatoren: In Delphi puede ser tatsächlich por Compilerschalter einstellen, si siempre todos Argumente ausgewertet voluntad oder sólo así weit, a el Ergebnis feststeht. Yo lo siempre en "alle Argumente" eingestellt y XProfan es auch así realisiert. Aber auch hier wäre lo sicher posible, beide Varianten anzubieten.
RGH (25.02.14)
Yo versuche veces, me beide Dinge para el kommende Versión X3 a merken.
Ein Compilerschalter sería entonces sí el obige Kurzschluß-Ejemplo auch erledigen... |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 21.12.2014 ▲ |
|
|
|