इनपुट एक्स:
if (0 <= X and X < 49)
output abc
else if (50 <= X and X < 70)
output def
else if (70 <= X and X < 85)
output ghi
else if (85 <= X and X < 100)
output jkl
endif
इनपुट एक्स:
if (0 <= X and X < 49)
output abc
else if (50 <= X and X < 70)
output def
else if (70 <= X and X < 85)
output ghi
else if (85 <= X and X < 100)
output jkl
endif
संपादित करें पर: कोई बात नहीं, मैं मानता हूँ कि मैं इस पर wronfg किया गया था।
क्योंकि कोई यह नहीं है ifदूसरे के अंदर परीक्षण किया जाता है ifकि परीक्षण किया true।
विशेष रूप से, अपने उदाहरण में:
if (0 <= X and X < 49) output "abc"
else if (50 <= X and X < 70) output "def"
else if (70 <= X and X < 85) output "ghi"
else if (85 <= X and X < 100) output "jkl"
endif
के रूप में लिखा जा सकता है:
if (0 <= X and X < 49) output "abc"; return; end if
if (50 <= X and X < 70) output "def"; return; end if
if (70 <= X and X < 85) output "ghi"; return; end if
if (85 <= X and X < 100) output "jkl"; return; end if
// X < 0 or X >= 100
टिप्पणी:
एक अगर बयान एक और अंदर नेस्टेड जा करने के लिए नेस्ट किए जाने के लिए नहीं है। यह एक किसी और के अंदर नेस्टेड जा सकती है -Bill छिपकली
मुद्दा लेना; मैं मानता हूँ कि मैं इस पर गलत हूँ।
आप तार्किक रूप से निम्नलिखित के बराबर होने के रूप में इसके बारे में सोच सकता है:
if(a) {
// code
} else {
if(b) {
// code
} else {
// code
}
}
इस संबंध में तो, आप कह सकते हैं यह नेस्ट। सी और इसी तरह की भाषा में, यह वास्तव में यह कैसे काम करता है के बाद से उपलब्ध बयान "elseif" है। घुंघराले ब्रेसिज़ हालांकि वैकल्पिक हैं, मैं सिर्फ यह स्पष्ट करने के लिए उन्हें शामिल थे।
यह भाषा के आधार पर, एक नेस्टेड लूप के रूप में लागू किया जा सकता है। हालांकि, जिस तरह से आप तार्किक रूप से यह पता लिखा था, यह एक विचार नहीं किया जाएगा।
वे नेस्ट हैं, लेकिन स्वरूपित की तरह वे नहीं हैं।
आपका कोड के रूप में ही है:
if (0 <= X and X < 49)
output "abc"
else
if (50 <= X and X < 70)
output "def"
else
if (70 <= X and X < 85)
output "ghi"
else
if (85 <= X and X < 100)
output "jkl"
endif
endif
endif
endif
इस से नहीं लगाए गए है:
if (0 <= X and X < 49)
output "abc"
endif
if (50 <= X and X < 70)
output "def"
endif
if (70 <= X and X < 85)
output "ghi"
endif
if (85 <= X and X < 100)
output "jkl"
endif
यह सब (?) भाषाओं है कि अगर बयान में मान्य है (का उपयोग करना {तरह बातें अनदेखी} के बजाय endif)
हालांकि, कुछ भाषाओं एक वास्तविक "elseif" (या "elif") आदेश, जिस स्थिति में आप होगा नहीं घोंसला, लेकिन जैसा कि "और अगर" लिखा आप यह सिर्फ एक का प्रारूप अलग घोंसला है ग्रहण कर सकते हैं।
यह वास्तविक भाषा पर निर्भर करता है, और यह कैसे लिखा है।
उदाहरण वीबी का उपयोग कर के लिए, इन Ifबयानों नहीं लगाए गए हैं:
If 0 <= x And x < 49 Then
output("abc")
ElseIf 50 <= x And x < 70 Then
output("def")
ElseIf 70 <= x And x < 85 Then
output("ghi")
ElseIf 85 <= x And x < 100 Then
output("jkl")
End If
जबकि इन Ifबयानों नेस्टेड रहते हैं:
If 0 <= x And x < 49 Then
output("abc")
Else
If 50 <= x And x < 70 Then
output("def")
Else
If 70 <= x And x < 85 Then
output("ghi")
Else
If 85 <= x And x < 100 Then
output("jkl")
End If
End If
End If
End If
मैं कहता हूँ, हाँ वे नेस्टेड रहते हैं जाएगा। आपका कोड ठीक उसी के बराबर है
if (0 <= X and X < 49)
output "abc"
else
if (50 <= X and X < 70)
output "def"
else
if (70 <= X and X < 85)
output "ghi"
else
if (85 <= X and X < 100)
output "jkl"
endif
ध्यान दें कि मैं केवल रिक्त स्थान बदल दिया है। एक भाषा का मूल्यांकन करता है जब if...else if...elseखंड, यह हर एक को जब तक यह सच खंड पाता परीक्षण (या इसे अंतिम हिट else)। नेस्टेड ifरों बिल्कुल उसी तरह का मूल्यांकन। यह भी ध्यान रखें कि यह जरूरी मामला अगर वहाँ कोई स्पष्ट नहीं है elsifकीवर्ड।
एक और बात मैं नोटिस, वह इस प्रकार है बराबर नहीं अपने कोड:
if (0 <= X and X < 49)
output "abc"
if (50 <= X and X < 70)
output "def"
if (70 <= X and X < 85)
output "ghi"
if (85 <= X and X < 100)
output "jkl"
नेस्टिंग है आवश्यक उत्पादन किया जा रहा है जब सभी शर्तें सत्य से पाठ के सभी रखने के लिए।
वाक्य रचना से पता चला को देखते हुए, मुझे लगता है कि जवाब "नहीं" चाहिए, अन्य उत्तर के संचित ज्ञान के विपरीत।
तुम दिखाओ:
if (0 <= X and X < 49)
output "abc"
else if (50 <= X and X < 70)
output "def"
else if (70 <= X and X < 85)
output "ghi"
else if (85 <= X and X < 100)
output "jkl"
endif
यह स्पष्ट रूप से एक भी है if... endifबयान, और इसलिए कोई नेस्टिंग है। यदि अनेक थे endifबयान, यह नेस्ट किया जाएगा:
if (0 <= X and X < 49)
output "abc"
else
if (50 <= X and X < 70)
output "def"
else
if (70 <= X and X < 85)
output "ghi"
else
if (85 <= X and X < 100)
output "jkl"
endif
endif
endif
endif
तो, अपनी भाषा में, ऐसा लगता है कि कीवर्ड elif(बॉर्न शैल द्वारा प्रयुक्त) और elsif(पर्ल द्वारा प्रयुक्त) और ElseIf(विजुअल बेसिक द्वारा प्रयुक्त) लिखा जाता है else if।
अगर वहाँ था कोई स्पष्ट endifबयान के अंत में चिह्नित करने के लिए, तो मैं अन्य उत्तर के साथ समझौते में हो सकता है - कि ifबयान (! बहुवचन) नेस्टेड रहते हैं, हालांकि लेआउट पूरी तरह से समझदार और सिफारिश की है।
नहीं ऐसा नहीं है।
एक नेस्टेड बयान तो एक ही है कि एक ही कथन में तो तरह दिखाई देता है, है ...। अगर ... elseif सभी एक ही "बयान" में है।
इस अर्थ विज्ञान के कुछ व्यर्थ खेल; यह शामिल भाषा की वाक्य रचना पर निर्भर करता है।
एक सी की तरह वाक्य रचना में उदाहरण के लिए वे आम तौर पर किसी और खंड में नेस्टेड पर विचार किया जाएगा, जो कोष्ठकों कि तथ्य अस्पष्ट करने के लिए छोड़े गए। इस मामले में Turnor के उदाहरण सही है।
कुछ अन्य भाषाओं में, अजगर और वीबी, जैसे 'शेष-अगर' अपने आप में एक परमाणु निर्माण है। उस मामले में 'अगर' 'किसी और' अंदर नहीं माना जा सकता है, तो यह नहीं कहा जा सकता "नेस्ट"।
if (0 <= X and X < 49)
output "abc"
else if (50 <= X and X < 70)
output "def"
endif
आप अपने स्यूडोकोड की वाक्य रचना पर्याप्त यकीन है कि के लिए कहने के लिए निर्धारित नहीं किया है, लेकिन पीछे 'endif' संदिग्ध है। अपने अस्तित्व सी ब्रेसिज़-लोप शैली के साथ फिट नहीं करता है; और तथ्य यह है कि केवल बात यह है कि उनमें से एक है और अधिक -
else
if (50 <= X and X < 70)
output "def"
endif
endif
- इसका मतलब है इसके साथ-ब्रेसिज़ से मेल नहीं खाता (या शुरू / अंत) या तो मॉडल। : ताकि वाक्य रचना द्वारा पहचानने मैं 'परमाणु बाकी-अगर' शिविर में अपने स्यूडोकोड भाषा डाल होता है, और काफी मनमाने ढंग से कहते हैं , कोई अपने अगर बयान से नहीं लगाए गए है।
एक अंतर्निहित मेल पाठक (लेकिन आप हमेशा एक भाषा जहां endifs वैकल्पिक या खाली स्थान के पर निर्भर। या कर रहे हैं परिभाषित किया जा सकता था, तो आप एक भाषा जहां उपरोक्त कार्यक्रम प्रिंट "नमस्ते दुनिया" तो आपके सभी फ़ाइलों को हटा देता परिभाषित हो सकता है। और है। )