可能重复:
In C/C++ why does the do while(expression); need a semi colon?
我理解“do while”循环的结构与“while”循环相比。我不明白的是,为什么语言需要这种语法:
do{ statements(); } while(condition);
语言是否绝对有必要在此表达式的末尾添加分号?或者这更容易编写编译器吗?
答案 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
所以我猜这是出于对称的原因 - 也许以这种方式编写解析器会更容易。