2010-09-14 22 views
5

Czy to tylko ja, czy jest jakiś problem ze stroną 68 w "The D Programming Language"? Na tej stronie autor omawia składnię instrukcji if-else oraz sposób ich zagnieżdżania. Najpierw prezentuje ten przykład:Problem z książką Przykład

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

Następnie wskazuje, że pozostałe będą wiązały się z drugim, jeśli. Potem mówi, że aby uzyskać inny wiąże się z pierwszą, czy należy zastosować nawiasy tak:

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

jestem brakuje punktu całkowicie, albo trzeba by to zrobić:

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

Odpowiedz

5

To rzeczywiście błąd. Błąd dla TDPL można znaleźć tutaj: http://www.erdani.com/tdpl/errata/index.php?title=Main_Page

+0

Przypuszczam, że znalazłbym go, gdybym szukał erraty i nie dodawałem ... :) – GManNickG

+0

Tak. Wiedziałem, gdzie to jest, ponieważ jestem aktywny w grupach D. W przeciwnym razie miałbym o wiele trudniejsze zadanie. –

2

Masz rację. Przykładowy kod jest nieprawidłowy. Ale tekst w książce jest poprawny: "Jeśli zamiast tego chcesz powiązać inny element z pierwszym, jeśli" bufor "drugi, jeśli z parą nawiasów klamrowych". Ale kod nie pokazuje "buforowania" tylko sekundy, jeśli.