为什么“while while”最后需要分号? (C / C ++ /爪哇/等)

时间:2011-04-12 23:34:31

标签: java c++ c do-while

  

可能重复:
  In C/C++ why does the do while(expression); need a semi colon?

我理解“do while”循环的结构与“while”循环相比。我不明白的是,为什么语言需要这种语法:

do{
     statements();
} while(condition);

语言是否绝对有必要在此表达式的末尾添加分号?或者这更容易编写编译器吗?

2 个答案:

答案 0 :(得分:1)

由于}不是结束,因此有一些方法可以知道到达语句的结尾,因此是分号。

没有它就可以编写一种语言,但在这些语言中要求它更有意义。

答案 1 :(得分:0)

至少在java中,你不能写:

} while (i < 10) && (j != 8);

没有收到此类错误消息:

NodeSorter.java:24: ';' expected
        } while (i < 10) && (j != 8);
                        ^
NodeSorter.java:24: not a statement
        } while (i < 10) && (j != 8);
                               ^
NodeSorter.java:24: ';' expected
        } while (i < 10) && (j != 8);
                                   ^
3 errors

所以我猜这是出于对称的原因 - 也许以这种方式编写解析器会更容易。