Ich finde das Tutorial gut geschrieben, mich regt dieses "= true" auch immer auf
. Den leeren Block vor else habe ich aber (zum Glück) noch nie gesehen, das ist ja wirklich grausig
.
Delphi-Quellcode:
begin
wert:=GetInt(aSatz, Fehler);
if fehler=true then
ShowMessage(aSatz + ': Eingabefehler!') else
if Fehler=false then
ShowMessage(aSatz + ': Wert: '+IntToStr(Wert)) else
ShowMessage(aSatz + ': Hupps!');
end;
Hier finde ich die Einrückung auf den ersten Blick etwas verwirrend, besser wäre
IMHO:
Delphi-Quellcode:
begin
wert:=GetInt(aSatz, Fehler);
if fehler=true then
ShowMessage(aSatz + ': Eingabefehler!')
else
if Fehler=false then
ShowMessage(aSatz + ': Wert: '+IntToStr(Wert))
else
ShowMessage(aSatz + ': Hupps!');
end;
Zitat:
SIMULA67 kennt bedingte Ausdrücke. Damit könnte man das Problem sinngemäß so lösen:
Code: markieren
Code:
IF (IF Length(string_var) >= 5 THEN False ELSE string_var[5] = 'x') THEN
irgend_was;
Vergleichbares gibt es auch in anderen (etwas bekannteren
) Sprachen, z.B. in C# als ternären Operator:
Code:
List<string> StringList = null;
if (StringList == null ? false : StringList.Count > 0)
Console.WriteLine(StringList[0]);
Und als Ergänzung: boolsche Kurzausdrücke in C#:
Code:
List<string> StringList = null;
// Löst eine System.NullReferenceException aus, da "&" einfach nur ein logischer Operator ist
if (StringList != null & StringList.Count > 0)
Console.WriteLine(StringList[0]);
// Löst keine
Exception aus, "&&" ist ein "logischer Bedingungsoperator" oder ""abkürzender" Operator"
// Entspricht dem Code von oben mit dem "?:" Operator
if (StringList != null && StringList.Count > 0)
Console.WriteLine(StringList[0]);