MATLAB Language
शर्तेँ
खोज…
वाक्य - विन्यास
- अगर अभिव्यक्ति ... अंत
- अगर अभिव्यक्ति ... और ... अंत
- अगर अभिव्यक्ति ... अन्य अभिव्यक्ति ... अंत
- अगर अभिव्यक्ति ... और अभिव्यक्ति ... और ... अंत
पैरामीटर
पैरामीटर | विवरण |
---|---|
अभिव्यक्ति | एक अभिव्यक्ति जिसका तार्किक अर्थ है |
अगर हालत
स्थितियां कोड के लगभग किसी भी हिस्से का एक मूलभूत हिस्सा हैं। उनका उपयोग कोड के कुछ हिस्सों को केवल कुछ स्थितियों में निष्पादित करने के लिए किया जाता है, लेकिन अन्य नहीं। आइए मूल वाक्य रचना को देखें:
a = 5;
if a > 10 % this condition is not fulfilled, so nothing will happen
disp('OK')
end
if a < 10 % this condition is fulfilled, so the statements between the if...end are executed
disp('Not OK')
end
आउटपुट:
Not OK
इस उदाहरण में हम देखते हैं कि if
2 भाग होते हैं: शर्त, और शर्त सही होने पर चलाने के लिए कोड। कोड सब कुछ शर्त के बाद और उसके end
से पहले लिखा जाता है if
। पहली शर्त पूरी नहीं हुई थी और इसलिए इसके भीतर कोड निष्पादित नहीं किया गया था।
यहाँ एक और उदाहरण है:
a = 5;
if a ~= a+1 % "~=" means "not equal to"
disp('It''s true!') % we use two apostrophes to tell MATLAB that the ' is part of the string
end
ऊपर दी गई शर्त हमेशा सत्य होगी, और आउटपुट प्रदर्शित करेगा It's true!
।
हम यह भी लिख सकते हैं:
a = 5;
if a == a+1 % "==" means "is equal to", it is NOT the assignment ("=") operator
disp('Equal')
end
इस बार हालत हमेशा गलत है, इसलिए हम आउटपुट प्राप्त कभी नहीं होगा Equal
।
ऐसी स्थितियों के लिए बहुत अधिक उपयोग नहीं किया जाता है जो हमेशा सही या गलत होती हैं, क्योंकि यदि वे हमेशा झूठी होती हैं तो हम कोड के इस हिस्से को हटा सकते हैं, और यदि वे हमेशा सही होते हैं तो शर्त की आवश्यकता नहीं है।
IF-ELSE स्थिति
कुछ मामलों में हम अगर हालत झूठी है किसी वैकल्पिक कोड, को चलाने के लिए इस हम वैकल्पिक उपयोग करना चाहते हैं else
हिस्सा:
a = 20;
if a < 10
disp('a smaller than 10')
else
disp('a bigger than 10')
end
यहाँ हम देखते हैं कि क्योंकि a
से छोटा नहीं है 10
कोड के दूसरे भाग, के बाद else
को मार डाला है और हम आउटपुट प्राप्त a bigger than 10
। अब आइए एक और कोशिश देखें:
a = 10;
if a > 10
disp('a bigger than 10')
else
disp('a smaller than 10')
end
इस उदाहरण अगर शो है कि हम जाँच नहीं किया a
10 से वास्तव में छोटा होता है, और क्योंकि हालत केवल अभिव्यक्ति की जाँच के रूप में यह है कि हम एक गलत संदेश मिलता है, और किसी भी मामले जो ऐसा नहीं करता सच के बराबर होती है ( a = 10
) का कारण होगा दूसरा भाग निष्पादित किया जाएगा।
इस तरह की त्रुटि शुरुआती और अनुभवी प्रोग्रामर दोनों के लिए एक बहुत ही सामान्य नुकसान है, खासकर जब स्थिति जटिल हो जाती है, और इसे हमेशा ध्यान में रखा जाना चाहिए
IF-ELSEIF स्थिति
का उपयोग करते हुए else
हम कुछ कार्य कर सकते हैं जब हालत संतुष्ट नहीं है। लेकिन क्या होगा अगर हम मामले में दूसरी शर्त की जांच करना चाहते हैं कि पहला झूठ था। हम इसे इस तरह से कर सकते हैं:
a = 9;
if mod(a,2)==0 % MOD - modulo operation, return the remainder after division of 'a' by 2
disp('a is even')
else
if mod(a,3)==0
disp('3 is a divisor of a')
end
end
OUTPUT:
3 is a divisor of a
इसे "नेस्टेड कंडीशन" भी कहा जाता है, लेकिन यहां हमारे पास एक विशिष्ट मामला है जो कोड पठनीयता में सुधार कर सकता है, और एर त्रुटि के लिए मौका कम कर सकता है - हम लिख सकते हैं:
a = 9;
if mod(a,2)==0
disp('a is even')
elseif mod(a,3)==0
disp('3 is a divisor of a')
end
OUTPUT:
3 is a divisor of a
elseif
का उपयोग करके हम उसी स्थिति के भीतर एक और अभिव्यक्ति की जांच करने में सक्षम हैं, और यह एक कोशिश तक सीमित नहीं है:
a = 25;
if mod(a,2)==0
disp('a is even')
elseif mod(a,3)==0
disp('3 is a divisor of a')
elseif mod(a,5)==0
disp('5 is a divisor of a')
end
OUTPUT:
5 is a divisor of a
अतिरिक्त देखभाल जब उपयोग करने के लिए चुनने के लिए लिया जाना चाहिए elseif
लगातार, क्योंकि उनमें से केवल एक सब से निष्पादित किया जाएगा if
करने के लिए end
ब्लॉक। इसलिए, हमारे उदाहरण में, यदि हम a
सभी भाजक प्रदर्शित करना चाहते हैं (उन लोगों से जो हम स्पष्ट रूप से जांचते हैं) ऊपर का उदाहरण अच्छा नहीं होगा:
a = 15;
if mod(a,2)==0
disp('a is even')
elseif mod(a,3)==0
disp('3 is a divisor of a')
elseif mod(a,5)==0
disp('5 is a divisor of a')
end
OUTPUT:
3 is a divisor of a
न केवल 3, बल्कि 5 भी 15 का विभाजक है, लेकिन जो भाग 5 से विभाजन की जांच करता है, वह नहीं पहुंचता है यदि इसके ऊपर का कोई भी भाव सत्य था।
अंत में, हम एक जोड़ सकते हैं else
सब के बाद (और केवल एक) elseif
की स्थिति एक कोड जब स्थिति से कोई भी ऊपर से मुलाकात कर रहे निष्पादित करने के लिए:
a = 11;
if mod(a,2)==0
disp('a is even')
elseif mod(a,3)==0
disp('3 is a divisor of a')
elseif mod(a,5)==0
disp('5 is a divisor of a')
else
disp('2, 3 and 5 are not divisors of a')
end
OUTPUT:
2, 3 and 5 are not divisors of a
घोंसले की स्थिति
जब हम किसी अन्य शर्त के भीतर एक स्थिति का उपयोग करते हैं तो हम कहते हैं कि स्थितियां "नेस्टेड" हैं। नेस्टेड शर्तों में से एक विशेष मामले के द्वारा दिया जाता है elseif
विकल्प है, लेकिन वहाँ नेस्टेड शर्तों को उपयोग करने के लिए कई अन्य तरीके हैं। आइए निम्नलिखित कोड की जांच करें:
a = 2;
if mod(a,2)==0 % MOD - modulo operation, return the remainder after division of 'a' by 2
disp('a is even')
if mod(a,3)==0
disp('3 is a divisor of a')
if mod(a,5)==0
disp('5 is a divisor of a')
end
end
else
disp('a is odd')
end
के लिए a=2
, उत्पादन होगा a is even
, जो सही है। A a=3
, आउटपुट a is odd
, जो सही भी है, लेकिन 3 के a का भाजक होने पर चेक से चूक जाता a
। ऐसा इसलिए होता है क्योंकि स्थितियां नेस्टेड होती हैं, इसलिए केवल अगर पहला true
, तो हम भीतर तक चले जाते हैं, और यदि a
विषम है, तो आंतरिक स्थितियों में से कोई भी जाँच नहीं की जाती है। यह कुछ हद तक elseif
के उपयोग के विपरीत है जहां केवल अगर पहली स्थिति false
तो हम अगले एक की जांच करते हैं। 5 द्वारा विभाजन की जाँच के बारे में क्या? केवल एक संख्या जो एक भाजक के रूप में 6 है (2 और 3 दोनों) 5 द्वारा विभाजन के लिए जाँच की जाएगी, और हम परीक्षण कर सकते हैं और देख सकते हैं कि a=30
लिए आउटपुट है:
a is even
3 is a divisor of a
5 is a divisor of a
हमें दो बातों पर भी ध्यान देना चाहिए:
- प्रत्येक के लिए सही स्थान पर
end
की स्थितिif
अपेक्षित परिस्थितियों के सेट के लिए महत्वपूर्ण है, तो यहां इंडेंटेशन एक अच्छी सिफारिश से अधिक है। -
else
कथन की स्थिति भी महत्वपूर्ण है, क्योंकि हमें यह जानना होगा किif
(और उनमें से कई हो सकते हैं) तो हम अभिव्यक्ति के मामले में कुछ करना चाहते हैं यदिfalse
।
आइए एक और उदाहरण देखें:
for a = 5:10 % the FOR loop execute all the code within it for every a from 5 to 10
ch = num2str(a); % NUM2STR converts the integer a to a character
if mod(a,2)==0
if mod(a,3)==0
disp(['3 is a divisor of ' ch])
elseif mod(a,4)==0
disp(['4 is a divisor of ' ch])
else
disp([ch ' is even'])
end
elseif mod(a,3)==0
disp(['3 is a divisor of ' ch])
else
disp([ch ' is odd'])
end
end
और उत्पादन होगा:
5 is odd
3 is a divisor of 6
7 is odd
4 is a divisor of 8
3 is a divisor of 9
10 is even
हम देखते हैं कि हमें 6 नंबरों के लिए केवल 6 लाइनें मिलीं, क्योंकि स्थितियां इस तरह से नेस्टेड हैं, जो प्रति नंबर केवल एक प्रिंट सुनिश्चित करती हैं, और यह भी (हालांकि आउटपुट से सीधे नहीं देखा जा सकता है) कोई अतिरिक्त चेक प्रीफ़ॉर्म नहीं किया जाता है, इसलिए यदि एक संख्या यह भी नहीं है कि यह जांचने का कोई मतलब नहीं है कि 4 इसमें से एक है।