Christoph Zurnieden: IF-Anweisungen oder Switch-Case?

Beitrag lesen

Hi,

Technisch gibt es eine Beschränkung aber nur dahingehend, das die Vergleichswerte im Vornherein bekannt sein müssen, das ist beim if/else Konstrukt nicht der Fall. So etwas wie if(function_1() == function_2()) geht im switch() nicht.

JavaScript erlaubt auch das:

[...]

switch(true)
{
  case(function_1(3) == function_2(5)):
  alert("ok");
  break;

Gut, switch() hat natürlich auch einen großen Anteil "syntactic sugar", dem kann ich schlecht wiedersprechen ;-)
Obiges Konstrukt läßt sich aber auch schlecht optimieren, das könnte man nur als if/else Konstrukt übersetzen[1]. Sind dahinter noch "normale" Fälle, hätte das zumindest den Vorteil besserer Lesbarkeit. Aber man könnte dann auch nur noch hoffen bzw sich durch den Code quälen, das das auch alles hübsch wegoptimiert wird ;-)

BTW: Netscape 4 soll lt. frueheren Threads dabei crashen, was ich mit 4.72 aber nicht reproduzieren kann.

Ja, die ganz groben Fehler haben sie beim 4er noch repariert, das stimmt. Leider war's das dann auch. Und wirklich alle haben sie auch nicht erwischt.

so short

Christoph Zurnieden

[1] Man könnte den Vergleich der Funktionsrückgaben natürlich auch in einen Baum einbauen, aber das würde zu einer Komplexität führen, die ich nicht handeln müssen möchte ;-)