सशर्त संचालकों और या या एक IF स्टेटमेंट में उपयोग करें?


30

यह शायद एक अविश्वसनीय रूप से सरल सवाल है, लेकिन मुझे अब तक कोई जवाब नहीं मिला (मुझे सही स्रोतों की कमी होनी चाहिए, और मुझे नहीं पता कि विम की मदद के लिए कहां खोज करनी चाहिए)।

मेरी एक शर्त है और मैं चाहूंगा कि इसे 'AND' शामिल किया जाए, जैसे

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

लेकिन मुझे वाक्यविन्यास नहीं मिला। 'या' के लिए एक ही बात है।


8
हेह, .AND.और .OR.फोरट्रान सिंटैक्स है, मैंने देखा नहीं है कि फोरट्रान कोड के बाहर एक लंबे समय में इस्तेमाल किया जाता है। :) Vim, &&AND और ||OR के बदले C- जैसे सिंटैक्स का उपयोग करता है । :h expression-syntaxअधिक के लिए देखें ।
lcd047

1
मुझे आपकी टिप्पणी पर करुणा महसूस हुई, * मैंने देखा नहीं है कि फोरट्रान कोड के बाहर एक लंबे समय में उपयोग किया जाता है। :) *: उसके लिये आपका धन्यवाद। अपनी टिप्पणी के लिए, यदि आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं इसे सहर्ष स्वीकार करूंगा!
फीफा

2
मुझे यह भ्रामक लगता है कि प्रश्न शीर्षक कैसे "और" और "और" या "एक दूसरे के समान है। (jk)
बेन मिलवुड

2
मैं "और" और / या "या" लिख सकता था। लेकिन मेरी हिम्मत नहीं हुई!
फाफ

जवाबों:


30

जैसा कि @ lcd047 ने अपनी टिप्पणी में कहा, vimscript सी-जैसे ऑपरेटरों &&और का उपयोग करता है ||

आप उनके उपयोग का विवरण पा सकते हैं :h expr2। डॉक्टर द्वारा उल्लिखित कुछ महत्वपूर्ण बिंदु निम्नलिखित हैं

आप पाएंगे कि ऑपरेटरों concatenated जा सकता है और &&पूर्वता अधिक लेता है ||, तो

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

के बराबर है

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

परिणाम ज्ञात होने के बाद, अभिव्यक्ति "शॉर्ट-सर्किट", अर्थात्, आगे के तर्कों का मूल्यांकन नहीं किया जाता है। यह वैसा है जैसा C में होता है।

यदि तुम प्रयोग करते हो:

if a || b

अभिव्यक्ति मान्य होगी यहां तक ​​कि bपरिभाषित नहीं है।


2
ध्यान दें कि मैंने यह उत्तर इसलिए दिया क्योंकि @ lcd047 ने एक नहीं लिखा था और मुझे लगा कि डॉक्टर के बारे में नोट दिलचस्प होगा, लेकिन अगर lcd047 एक उत्तर देता है तो मैं ख़ुशी से इसे डिलीट कर दूंगा ताकि वह उसे काफी क्रेडिट दे सके
स्टेटॉक्स

1
मुझे शक है। कुछ समय पहले lcd047 ने मुझे बताया कि वे उत्तर पोस्ट नहीं करेंगे।
मुरु

@ मरमू: मुझे यह देखकर भी याद आया कि कहीं न कहीं मुझे 100% यकीन नहीं था कि यह उसके लिए है और दूसरा उपयोगकर्ता नहीं।
statox
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.