以下2个代码在功能上有什么区别吗?如果没有,是否有首选风格?
int main()
{
int i=11;
if (i > 100)
{
i = 100;
}
else if (i < 0)
{
i = 0;
}
cout << i << endl;
}
Run Code Online (Sandbox Code Playgroud)
与
int main()
{
int i=11;
if (i > 100)
{
i = 100;
}
else if (i < 0)
{
i = 0;
}
else
{
}
cout << i << endl;
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我的问题是,else如果我不想让它做任何事情,是否有任何意义?
对于这个问题:
......一个空
else条款有什么意义吗?
在if { ... } else {}答案的背景下是没有.编译器可能会优化你的else出局.除非您输入实际语句(assert,print错误处理),否则可执行文件几乎完全相同.
对于这个问题:
构造中空
else子句有什么好处else if?
这个Stack Overflow帖子详细讨论了答案.见MISRA C出版物.
它适用于if { ... } else if { ... } else {}构造,而不是 if { ... } else {}构造.
一个else { /* no statement */ }非常好于一个else statement.它确实可以防止悬挂式else封闭(else未跟随{}),因为它们可能会误导读者else实际应用的内容,并且容易出现维护错误.
你会发现比一个房间里的工程师更多的编程风格1.我可以建议:
int main() {
int i = 11;
if (i > 100) {
i = 100;
} else if (i < 0) {
i = 0;
}
cout << i << endl;
}
Run Code Online (Sandbox Code Playgroud)
每个人 1个,加上一个人达成共识.