D 图书示例的问题

D 图书示例的问题,d,D,只是我,还是“D编程语言”第68页有问题? 在本页中,作者讨论了if-else语句的D语法及其嵌套方式。他首先介绍了这个例子: if(a == b) if(b == c) writeln("all are equal!"); else writeln("a is different from b. Or is that so?"); 然后他指出,else将绑定到第二个if。然后他说,为了让else绑定到第一个if,应该使用这样的大括号: if(a

只是我,还是“D编程语言”第68页有问题? 在本页中,作者讨论了if-else语句的D语法及其嵌套方式。他首先介绍了这个例子:

if(a == b)
    if(b == c)
        writeln("all are equal!");
    else
        writeln("a is different from b. Or is that so?");
然后他指出,else将绑定到第二个if。然后他说,为了让else绑定到第一个if,应该使用这样的大括号:

if(a == b) {
    if(b == c)
        writeln("all are equal!");
    else
        writeln("a is different from b. Or is that so?");
}
我是完全没有抓住要点,还是你必须这样做:

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

这确实是一个错误。TDPL的勘误表可在此处找到:

您是正确的。示例代码是错误的。但书中的文字是正确的:“如果你想将else绑定到第一个If,那么用一对大括号缓冲“第二个If”。但是代码并没有显示“缓冲”,只是第二个if。

我想如果我搜索勘误表而不是补遗,我会找到它的……:)是的。我知道它在哪里,因为我在D新闻组很活跃。否则的话,我会很难找到它。