在IF语句中使用条件运算符AND或OR?


30

这可能是一个非常简单的问题,但是到目前为止,我还没有找到任何答案(我必须缺少正确的消息来源,而且我不知道在vim帮助下可以找到哪里)。

我有一个条件,我希望它包含“ AND”,例如

if (condition1 .AND. condition2)
   "do what I want you to do
endif

但我找不到语法。“ OR”也一样。


8
嘿,.AND.并且.OR.是Fortran语言的语法,我还没有看到,在一个很长很长,而在室外使用Fortran代码。:) Vim &&为AND和||OR 使用类似于C的语法。查看:h expression-syntax更多。
lcd047 '16

1
在您的评论中,我感到同情,因为*很长时间以来,我还没有看到过在Fortran代码之外使用过的内容。:) *:谢谢你。至于您的评论,如果您将其发布为答案,我会很乐意接受!
Feffe

2
我发现问题标题如何像这样将“ and”和“ or”和“ or”并排放置令人困惑。(jk)
Ben Millwood

2
我可以写“和”和/或“或”。但是我不敢!
Feffe

Answers:


30

正如@ lcd047在他的评论中所说,vimscript使用类似C的运算符&&||

您可以在找到有关其用法的说明:h expr2。该文档提到的一些要点如下

您会发现运算符可以串联起来,并且&&优先于||,因此

&nu || &list && &shell == "csh"

相当于

&nu || (&list && &shell == "csh")

同样,一旦知道结果,就不对表达式“ short-circuits”(短路)进行评估。这就像在C中发生的情况。

如果您使用:

if a || b

即使b未定义,该表达式也将有效。


2
请注意,我之所以做出这个回答是因为@ lcd047没有写过一个,并且我认为有关该文档的注释会很有趣,但是如果lcd047给出了一个答案,我很乐意删除这个答案,以便让他公平地获得荣誉
statox

1
我对此表示怀疑。不久前,lcd047告诉我他们不会发布答案。
大师

@muru:我也记得在某处看到过那个东西,但我不是100%肯定是他而不是另一个用户。
statox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.