इस अगर बयान नेस्ट, या नहीं है?

वोट
0

इनपुट एक्स:

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
11/04/2009 को 00:47
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


9 जवाब

वोट
-1

संपादित करें पर: कोई बात नहीं, मैं मानता हूँ कि मैं इस पर 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 छिपकली

मुद्दा लेना; मैं मानता हूँ कि मैं इस पर गलत हूँ।

11/04/2009 को 00:51
का स्रोत उपयोगकर्ता

वोट
8

आप तार्किक रूप से निम्नलिखित के बराबर होने के रूप में इसके बारे में सोच सकता है:

if(a) {
    // code
} else {
    if(b) {
        // code
    } else {
        // code
    }
}

इस संबंध में तो, आप कह सकते हैं यह नेस्ट। सी और इसी तरह की भाषा में, यह वास्तव में यह कैसे काम करता है के बाद से उपलब्ध बयान "elseif" है। घुंघराले ब्रेसिज़ हालांकि वैकल्पिक हैं, मैं सिर्फ यह स्पष्ट करने के लिए उन्हें शामिल थे।

11/04/2009 को 00:56
का स्रोत उपयोगकर्ता

वोट
0

यह भाषा के आधार पर, एक नेस्टेड लूप के रूप में लागू किया जा सकता है। हालांकि, जिस तरह से आप तार्किक रूप से यह पता लिखा था, यह एक विचार नहीं किया जाएगा।

11/04/2009 को 01:11
का स्रोत उपयोगकर्ता

वोट
5

वे नेस्ट हैं, लेकिन स्वरूपित की तरह वे नहीं हैं।

आपका कोड के रूप में ही है:

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") आदेश, जिस स्थिति में आप होगा नहीं घोंसला, लेकिन जैसा कि "और अगर" लिखा आप यह सिर्फ एक का प्रारूप अलग घोंसला है ग्रहण कर सकते हैं।

11/04/2009 को 01:11
का स्रोत उपयोगकर्ता

वोट
3

यह वास्तविक भाषा पर निर्भर करता है, और यह कैसे लिखा है।

उदाहरण वीबी का उपयोग कर के लिए, इन 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
11/04/2009 को 01:17
का स्रोत उपयोगकर्ता

वोट
3

मैं कहता हूँ, हाँ वे नेस्टेड रहते हैं जाएगा। आपका कोड ठीक उसी के बराबर है

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"

नेस्टिंग है आवश्यक उत्पादन किया जा रहा है जब सभी शर्तें सत्य से पाठ के सभी रखने के लिए।

11/04/2009 को 01:20
का स्रोत उपयोगकर्ता

वोट
1

वाक्य रचना से पता चला को देखते हुए, मुझे लगता है कि जवाब "नहीं" चाहिए, अन्य उत्तर के संचित ज्ञान के विपरीत।

तुम दिखाओ:

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बयान (! बहुवचन) नेस्टेड रहते हैं, हालांकि लेआउट पूरी तरह से समझदार और सिफारिश की है।

11/04/2009 को 01:45
का स्रोत उपयोगकर्ता

वोट
0

नहीं ऐसा नहीं है।

एक नेस्टेड बयान तो एक ही है कि एक ही कथन में तो तरह दिखाई देता है, है ...। अगर ... elseif सभी एक ही "बयान" में है।

11/04/2009 को 01:54
का स्रोत उपयोगकर्ता

वोट
1

इस अर्थ विज्ञान के कुछ व्यर्थ खेल; यह शामिल भाषा की वाक्य रचना पर निर्भर करता है।

एक सी की तरह वाक्य रचना में उदाहरण के लिए वे आम तौर पर किसी और खंड में नेस्टेड पर विचार किया जाएगा, जो कोष्ठकों कि तथ्य अस्पष्ट करने के लिए छोड़े गए। इस मामले में 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 वैकल्पिक या खाली स्थान के पर निर्भर। या कर रहे हैं परिभाषित किया जा सकता था, तो आप एक भाषा जहां उपरोक्त कार्यक्रम प्रिंट "नमस्ते दुनिया" तो आपके सभी फ़ाइलों को हटा देता परिभाषित हो सकता है। और है। )

11/04/2009 को 02:50
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more