书籍示例的问题

时间:2010-09-14 20:26:11

标签: d

仅仅是我,还是“D编程语言”的第68页有问题? 在这个页面上,作者讨论了D的if-else语句的语法以及它们如何嵌套。他首先介绍了这个例子:

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

然后他指出else会绑定到第二个if。然后他说,为了让其他人绑定到第一个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?");

2 个答案:

答案 0 :(得分:5)

这确实是一个错误。可以在此处找到TDPL的勘误表:http://www.erdani.com/tdpl/errata/index.php?title=Main_Page

答案 1 :(得分:2)

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