वे एक भी कीवर्ड नहीं हैं यदि हम ड्राफ्ट C ++ मानक अनुभाग में जाते हैं तो 2.12 कीवर्ड टेबल 4दोनों ifको elseअलग-अलग सूचीबद्ध करती है और कोई else ifकीवर्ड नहीं है । हम कीवर्ड पर cppreferences अनुभाग पर जाकर C ++ कीवर्ड की अधिक सुलभ सूची पा सकते हैं ।
अनुभाग में व्याकरण 6.4भी यह स्पष्ट करता है:
selection-statement:
if ( condition ) statement
if ( condition ) statement else statement
ifमें else ifएक है बयान निम्नलिखित elseअवधि। अनुभाग यह भी कहता है:
[...] एक चयन-बयान में प्रतिस्थापन (प्रत्येक प्रतिस्थापन, यदि कथन के
अन्य रूप में ) स्पष्ट रूप से ब्लॉक स्कोप (3.3) को परिभाषित करता है। यदि चयन-वक्तव्य में सबस्टेशन एक एकल स्टेटमेंट है और एक कंपाउंड-स्टेटमेंट नहीं है , तो यह ऐसा है जैसे कि यह कंपाउंड-स्टेटमेंट हो जिसमें मूल सबस्टेशन हो।
और निम्नलिखित उदाहरण प्रदान करता है:
if (x)
int i;
can be equivalently rewritten as
if (x) {
int i;
}
तो आपके थोड़े विस्तारित उदाहरण को कैसे पार्स किया जाता है?
if
statement_0;
else
if
statement_1;
else
if
statement_2 ;
इस तरह पार्स किया जाएगा:
if
{
statement_0;
}
else
{
if
{
statement_1;
}
else
{
if
{
statement_2 ;
}
}
}
ध्यान दें
हम यह भी तय कर सकते हैं कि else ifएहसास है कि द्वारा एक कीवर्ड नहीं किया जा सकता कीवर्ड हैं पहचानकर्ता और हम करने के लिए अपने जवाब में एक पहचानकर्ता के लिए व्याकरण से देख सकते हैं कर सकते हैं एक संख्यात्मक अंक के साथ एक वर्ग के नाम से शुरू? पहचानकर्ताओं में उस स्थान की अनुमति नहीं है और इसलिए else ifएक भी कीवर्ड नहीं हो सकता है लेकिन दो अलग-अलग कीवर्ड होने चाहिए ।
else if