IF deyiminde koşullu operatörleri AND veya VEYA kullan?


30

Bu muhtemelen inanılmaz derecede basit bir sorudur, ancak şu ana kadar herhangi bir cevap bulamadım (doğru kaynaklardan yoksun olmalıyım ve vim'in yardımında nerede arayacağımı bilmiyorum).

Bir şartım var ve bunun gibi 'VE' kelimesini içermesini istiyorum

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

ama sözdizimini bulamadım. 'OR' için de aynı şey.


8
Heh .AND.ve .OR.Fortran sözdizimi, Fortran kodu dışında uzun süredir kullanıldığını görmedim. :) Vim, &&AND ve ||OR için bunun yerine C-benzeri bir sözdizimi kullanır . Daha :h expression-syntaxfazlasını gör .
lcd047

1
Yorumunuzda şefkat hissetmiştim, * Fortran kodu dışında uzun süredir kullanıldığını görmedim. :) *: Bunun için teşekkür ederim. Yorumunuza gelince, eğer bir cevap olarak gönderirseniz memnuniyetle kabul ederim!
Feffe

2
Soru başlığının "ve" ve veya ve "veya" birbirlerinin yanına nasıl yerleştirildiği konusunda kafa karıştırıcı buluyorum. (jk)
Ben Millwood

2
"Ve" ve / veya "veya" yazabilirdim. Ama cesaret edemedim!
Feffe

Yanıtlar:


30

@ Lcd047'nin yorumunda dediği gibi, vimscript C-benzeri operatörleri &&ve ||.

Kullanımlarının açıklamasını burada bulabilirsiniz :h expr2. Doktor tarafından belirtilen bazı önemli noktalar şunlardır:

Operatörlerin birleştirilebileceğini ve &&öncelik kazanacağını göreceksiniz ||,

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

Eşittir

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

Ayrıca sonuç bilindiğinde, "kısa devreler" ifadesi, yani başka argümanlar değerlendirilmez. C de olanlar böyle.

Eğer kullanırsan:

if a || b

İfade geçerli olsa bile btanımlanmamıştır.


2
Bu cevabı ben yaptım, çünkü @ lcd047 bir tane yazmadı ve ben doktorla ilgili notun ilginç olacağını düşündüm ama lcd047 bir cevap verirse bunu adil bir şekilde kredi alabilmesi için memnuniyetle
silerdim

1
Şüpheliyim. Bir süre önce lcd047 bana cevap alamayacaklarını söyledi.
muru

@muru: Bunu bir yerde gördüğümü de hatırladım ama% 100 başka bir kullanıcı olmadığından emin değildim.
statox
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.