If statement 在无括号的if语句中是否有其他隐含语句?语言未知

If statement 在无括号的if语句中是否有其他隐含语句?语言未知,if-statement,scripting-language,compiled-language,If Statement,Scripting Language,Compiled Language,在讨论上也讨论过的后,有人提到他们遇到了这样一种情况,即无括号的if表达式后面的行被视为else if (<condition>) <expression A>; <expression B>; <expression C>; if() ; ; ; 因此,根据此人的说法,如果条件为真,表达式B将被跳过,就好像else是隐式的,不必要的 这与我所听到的相反——我的经验是,如果条件是真的,那么所有三种表达都将被执行——但鉴于我是一个支持

在讨论上也讨论过的后,有人提到他们遇到了这样一种情况,即无括号的
if
表达式后面的行被视为
else

if (<condition>)
   <expression A>;
   <expression B>;
<expression C>;
if()
;
;
;
因此,根据此人的说法,如果条件为真,表达式B将被跳过,就好像
else
是隐式的,不必要的

这与我所听到的相反——我的经验是,如果条件是真的,那么所有三种表达都将被执行——但鉴于我是一个支持方括号的倡导者,我的经验可能有限,因此我犹豫是否要完全将此人叫出。相反,我花了大约10分钟澄清并确保我正确理解了他们所说的:)

他们说的有什么道理吗?什么语言?


我确信所有主要的脚本语言都遵循我的理解。我认为此人在Objective-C方面有更高的背景。但如果这是真的,那肯定是始终使用括号的最好理由。

这将是非常不合逻辑的,我强烈怀疑任何使用这种语法规则的语言都会获得很多支持(虽然我选择使用的语言都有我喜欢的语法,但它们是不同的,所以这当然是可能的)

任何可能的方式(我能想到)实现这一点可能会导致在查看语言中的其他语法规则时出现看似不一致的行为,或者在可能的方面受到很大限制,并且,无论哪种方式,最初都会对可读性造成不利影响-如果它具有相同的缩进,那么如何在其块中包含多行的if语句,或者这是不允许的?如果
else
部分会减少缩进,那么您将如何区分属于
else
部分的代码,还是紧跟在If语句之后的代码,或者每个If语句都必须有
else
部分?多行
else
也将是一个问题。如果这纯粹是基于什么时候有或没有花括号或类似的,这将是真正令人困惑的开始

这就是说,还有一个,这是真的有一个“一切顺利”的座右铭

一种深奥的编程语言(有时简称为esolang)是一种设计用来测试计算机编程语言设计边界的编程语言,作为概念证明或笑话

如果有一种深奥的语言有这样的语法规则,我不会感到惊讶,也不会特别有意义

另一种可能的情况是,此人当时正处于这样一种情况:

someFunction()
{
如果()
返回;
返回;
}

这将是第二个return语句之前显式的
else
的同义词,因为if语句中的return语句将导致它后面的return语句仅在条件为false时执行。

这可能太宽泛了,可能不是问这个问题的合适论坛,但我之所以选择它,是因为它太简单了具体到
if/else
structure你的例子就是我最初认为此人所说的,这既常见又实用。当他们提到如果条件为
true
,则可以跳过
表达式B
,这时我的耳朵就亮了起来。我在想Python,或者一种基于结构的语言,可能不要使用缩进将下面缩进的行视为else语句,但不会想到任何语言。