我通常会一直编写条件代码
if (number==1)
name="a";
if (number==2)
name="b";
Run Code Online (Sandbox Code Playgroud)
不管多短,虽然我找到了相当多的人写作
if (number==1) name ="a";
if (number==2) name ="b"...
Run Code Online (Sandbox Code Playgroud)
对我来说这似乎不一致,实际上使代码看起来更麻烦.
做这个的最好方式是什么?
Uri*_*Uri 17
编码风格是最激烈争论的主题之一(通常具有宗教热情).关于这个问题有很多资源,我会尝试找到这些链接.
无论哪种方式,我都喜欢用花括号包裹每一个这样的条件; 我的经验是,如果添加或省略线条,它们会使身体更加明显,并降低出错的风险.
我更喜欢你的第一个选择,但更好的是:
if (number == 1) {
name = "a";
}
if (number == 2) {
name = "b";
}
Run Code Online (Sandbox Code Playgroud)
在简单的视图中稍微长一些,但是当if变得大于一行时我不必添加括号(我经常认为)
我总是写同样的条件:
if (number == 1)
{
name = "a";
}
else if (number == 2)
{
name = "b";
}
Run Code Online (Sandbox Code Playgroud)
它易于阅读和一致.与包含多个语句的if语句一致......
为了扩展这个,我尝试遵循这个规则:
每一行都做一件事.
也就是说,每一行应该执行一个语句(范围应该很容易看到).所以我不喜欢:
if (number==1) name ="a";
Run Code Online (Sandbox Code Playgroud)
因为在一行上发生了两件事,这使得阅读和调试比应该更加困难.所以我会转到:
if (number==1)
name ="a";
Run Code Online (Sandbox Code Playgroud)
但这有一个问题,即如果与多语句不一致.这就是为什么(正如其他人所说的那样)将括号放在周围的东西是好的:
if (number==1)
{
name ="a";
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢它自己的'{'的原因是当我扫描代码时,我可以快速识别范围开始和结束的位置.它也遵循一个语句规则,因为让'if'和'{'执行if语句并启动一个新范围.
我不认为,"它保存了垂直空白"是一个足够的理由,可以跳过可读性和良好的格式化(两个{}在同一列==性感).这是因为考虑到今天的显示器的分辨率,您不需要努力查看代码.