大括号/没有大括号?
当我开始开发时,我遵循总是用{}
(花括号)括起来的教程。 但是,当我开始查看其他人的代码时(例如GitHub上的类,或者更多的代码,而不是基本教程会显示的代码),但是我也看到了块语句,而没有被封装在{}
;
if($var < 15)
$string = 'Hello, Jimmy!';
elseif($var >= 15)
$string = 'Hello, Anne!';
是相同的
if($var < 15) {
$string = 'Hello, Jimmy!';
} elseif($var >= 15) {
$string = 'Hello, Anne!';
}
我从来没有使用未包含在{}
块,但是我今天使用了它们,并且我开始看到这样做的效率(它看起来更加干净,因为我经常发现我的函数充斥着{}
循环,条件等。
我问的是,
a)是否有没有花括号的块的限制(;我注意到我的IDE从缩进后退回,因为我输入一行后返回if()
条件?
b)在不使用{}
时是否有最佳做法?
任何答案,特别是那些公司。 背景/文件关于花括号使用大括号和不使用它们的大会将不胜感激,因为我真的想了解大括号的用法:)!
您可以省略单行的{}
:
if(something)
do something else
但是你不能忽略它,并继续如此:
if(something)
do one thing
do another
do some more
上面的例子只有1个条件元素('做一件事')。 其余的只是无条件地运行。
是的,我以前见过的马虎方法没有{}
我自己喜欢用{}
的逻辑中分离出来,它更易于阅读。
所以坚持在你的代码中使用{}
。
最佳做法是始终使用它们。 对于其他开发人员来说,添加一行代码或删除一行代码并完全打破条件非常容易。
它主要取决于你习惯的风格。 http://en.wikipedia.org/wiki/Indent_style
if (some_error)
something(); //Will be executed only when some_error==true
somethingelse(); //Will always be executed.
如果你不使用大括号,只有下一行是if语句的一部分。
if (some_error) err1 = "bad1"; errorno=3;
当然,在上面的例子中,无论some_error是否为真,errno总是3。
这与for循环相同
for (i = 0; i < 10; i++)
doSomething (i);
所以大括号标记了它开始和结束的地方。 不使用它们意味着只有下一行将受到if,for,while,...语句的影响。
此外,大括号可用于标记代码块。 当我用C ++编写代码时,我总是用花括号标记GL调用的开始和结束。
glBegin(GL_TRIANGLES); // Drawing Using Triangles
{
glVertex3f( 0.0f, 1.0f, 0.0f); // Top
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
}
glEnd();
这样就更容易阅读和发现丢失的glEnd调用。
链接地址: http://www.djcxy.com/p/1865.html