有关于哪些语句不需要以分号结尾的规则吗?
发布于 2012-06-15 09:02:29
是的,它在C++标准的第6节“声明”中涉及到( C++03的第6节,它可能在C++11中发生了变化,但我目前无法访问它)。
有大量的语句类型,并不是所有的语句类型都需要终止。例如,以下if是一条选择语句:
if (i == 1) {
doSomething();
}并且不要求以分号结尾。
在所涵盖的不同语句中,要求是:
Statement type Termination required?
============== =====================
labelled statement N (a)
expression Y
compound statements N (a)
selection statements N (a)
iteration statements N (a) (b)
jump statements Y
declaration statement Y(a)虽然有时看起来它们以分号结尾,但事实并非如此。声明:
if (i == 1) doSomething();使用分号终止内部表达式语句,而不是复合语句,当您检查上面第一个包含在{}大括号中的代码段时,这一点应该很明显。
(b) do需要while表达式后面的分号。
发布于 2012-06-15 09:00:12
块语句后面不需要有分号,这就是为什么我们不需要在这段代码的右大括号后面有分号的原因:
while (true) {
cout << "Hi!" << endl;
}任何充当语句的表达式后面都必须有分号,这就是为什么上面的cout行以分号结尾的原因。
控制语句(if、do、while、switch等)它们后面不需要分号,除了do ... while,后面必须有分号。但是,如果它们控制的语句以分号结尾,则整个语句本身也将以分号结尾。例如:
while (true) cout << "Are we there yet?" << endl;以分号结束,因为受控cout语句以分号结束。
控制流更改语句(如break、continue、goto、return和throw )后面必须有分号。
像函数原型、变量声明和struct/class/union声明这样的声明语句必须以分号结尾。
有关语句类型及其语法的完整列表,您可以查看C++ ISO标准的§6,其中详细介绍了每种类型语句的语法。这就是我是如何编制这个列表的。
希望这能有所帮助!
发布于 2012-06-15 12:05:41
3.在这些标识符后,需要使用空、整型、字符串和长etc..no分号。
4.当定义项出现时,函数也不需要分号。
例如void fun(){........}
https://stackoverflow.com/questions/11043340
复制相似问题