前一种风格(K & R风格)没有什么问题(只要它是缩进的)。它在具有这种语法的语言中被大量使用(C、Java、Perl)。
例如,它是Java标准,在IMO中是相当可读的(只要缩进正确)。 [由于mql4在很大程度上借用了C风格的语法,我认为提及这些其他语言是有意义的] 。
不过它应该缩进。
if(a==b){
Dothis;
Dothis;
etc;
}
第二个例子(Allman风格)也被一些人所喜欢,并且普遍认为它更具有可读性(同样有正确的缩进)。
if(a==b)
{
Dothis;
Dothis;
etc;
}
但你所否定的方法在其他地方是非常流行的(因为可读性的原因)。
你的后一个例子我一点也不喜欢。
allman风格也更容易识别缺失的大括号,特别是在复杂的if else树中。
支架风格是程序员的偏好,我认为真的没有正确或错误的方法。K&R风格是最好的;-)。为什么要为开头的括号多写一行呢?.... 我真正关心的是它属于哪个if{statement}。例如,什么看起来更好,更容易理解。
if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { } } } } } } } } } }
或者这个版本。
if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ } } } } } } } } } }
甚至更好。
if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return我认为,最后一个版本感觉更符合我在现实生活中的写作方式。一行一行地写。
我是这样做的。
if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) }}}}}}}}}
我喜欢这种讨论。
那么在编码else 语句时的偏好呢。 我更喜欢第一个例子,虽然有些编辑器不能折叠/解压这样的块。第二个是一个折中的办法。第三个甚至更一致,但无法阅读。
if (cond) { command; } else if (cond) { command; } else { command; }
或
if (cond) { command; } else if (cond) { command; } else { command; }
或
if (cond) { command; } else { if (cond) { command; } else { command; } }
在某种程度上,这并不重要,重要的是应用所选风格的一致性......当然,我们都有自己的偏好。

SDC:
我个人认为这是很清楚的。 我是这样做的,如果其他方面像这样

RaptorUK: 就我个人而言,我觉得这句话就像泥巴一样清晰。
它只是伤害了我的眼睛:{
RaptorUK:
在某种程度上,这并不重要,重要的是应用所选风格的一致性......当然,我们都有自己的偏好。
在某种程度上,这并不重要,重要的是应用所选风格的一致性......当然,我们都有自己的偏好。
同意Raptor的意见。关于什么的话题。当人们在这里发布他们的代码而不使用SRC时,我就会感到很沮丧。他们如何给他们的程序编码是由他们自己决定的,除非他们打算寻求帮助。
当人们发布他们的代码时,我经常看到这种情况。
if(a==b){ Dothis; Dothis; etc; }
现在,在阅读别人的代码的短文时,这并不是一个问题。
但是当他们的代码很多的时候,它就会使人几乎无法理解。
我想,很多人都很难在自己的代码中发现错误。
为什么不是这样呢?