Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Über den Umgang mit Boolean

  Alt 16. Nov 2005, 14:50
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]);
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat