2010-09-14 12 views
5

Est-ce que c'est moi, ou est-ce qu'il y a un problème avec la page 68 de "The D Programming Language"? Sur cette page, l'auteur discute de la syntaxe des instructions if-else de D et de leur imbrication. Il présente d'abord cet exemple:Problème avec le livre Exemple

if(a == b) 
    if(b == c) 
     writeln("all are equal!"); 
    else 
     writeln("a is different from b. Or is that so?"); 

Il indique ensuite que l'autre se liera à la seconde if. Il dit alors que, pour obtenir le reste de se lier à la première si l'on doit utiliser des accolades comme ceci:

if(a == b) { 
    if(b == c) 
     writeln("all are equal!"); 
    else 
     writeln("a is different from b. Or is that so?"); 
} 

Suis-je manque le point complètement, ou auriez-vous le faire:

if(a == b) { 
    if(b == c) 
     writeln("all are equal!"); 
} 
else 
    writeln("a is different from b. Or is that so?"); 

Répondre

5

C'est en effet une erreur. L'errata pour TDPL peut être trouvée ici: http://www.erdani.com/tdpl/errata/index.php?title=Main_Page

+0

Je suppose que je l'aurais trouvé si je cherchais errata et non addendum ... :) – GManNickG

+0

Ouais. Eh bien, je savais où c'était parce que je suis actif sur les newsgroups D. J'aurais eu beaucoup plus de mal à le trouver autrement. –

2

Vous avez raison. L'exemple de code est erroné. Mais le texte dans le livre est correct: "Si vous voulez plutôt lier l'autre à la première si," tamponner "la seconde si avec une paire d'accolades". Mais le code ne montre pas "tampon" juste la seconde si.

Questions connexes