2012-01-10 12 views
5

नीचे दी गई विधि जावा में निष्पादित नहीं किया जा सकता है, क्योंकि चर i इसके उपयोग के समय तक अप्रारंभीकृत रह सकते हैं। क्या यह वाक्यविन्यास या अर्थशास्त्र का मुद्दा है?वाक्यविन्यास या अर्थशास्त्र जारी करना?

public int odd(boolean b){ 
    int i; 
    if(b){ i = 3;} 
    return i; 
} 

मैंने सोचा होगा कि यह अर्थशास्त्र होगा, लेकिन मेरे प्रशिक्षक के अनुसार यह एक वाक्यविन्यास त्रुटि है। क्या यह सही है, और क्यों?

+0

ठीक है, क्यों यह फर्क पड़ता है

इस संदर्भ लें? न तो आप काम कोड प्राप्त करेंगे। – Piskvor

+1

इसे कंपाइलर अनुकूलन के साथ करना है, शिकायतकर्ता को संभवतः पहुंचने योग्य कोड जैसे –

उत्तर

8

यह जावा कंपाइलर द्वारा पता चला एक त्रुटि है, लेकिन यह एक वाक्यविन्यास त्रुटि नहीं है; यह जावा व्याकरण के अनुसार पूरी तरह मान्य है। यह विश्लेषण के बाद के चरणों में पता चला है, यह एक अर्थपूर्ण त्रुटि बना रहा है।

जिसके अनुसार, यह लग रहा है अपने प्रशिक्षक एक सिंटैक्स त्रुटि के रूप में किसी भी संकलक त्रुटि को परिभाषित करना चाहता है, और शायद कुछ ऐसा है जो रनटाइम पर गलत हो जाता है मतलब "अर्थ त्रुटि" चाहता है की तरह। चूंकि प्रशिक्षक होमवर्क ग्रेड करता है, इसलिए आपको अपनी परिभाषाओं को स्वीकार करने के लिए मजबूर होना पड़ता है (भले ही वे पूरी तरह से गलत हैं, इस मामले में;))।

+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद! – Adeeb

0

जावा स्थानीय चर घोषित करने के लिए एक सख्ती से परिभाषित वाक्य रचना है, और अपने कोड नमूने में आप इसका अनुसरण नहीं कर रहे हैं।

तो जावा में, यह एक सिंटैक्स त्रुटि हो जाता है। http://c2.com/cgi/wiki?SyntaxVsSemantics

और इस: http://wiki.answers.com/Q/What_are_the_Differences_between_syntax_and_semantic_error

+0

जावा सिंटैक्स का किस भाग का उल्लंघन किया जाता है? –

+1

यह सी 2 पर * सबसे खराब * पृष्ठ होना चाहिए मैंने कभी देखा है। क्या गड़बड़ है! –

+0

@ डेव न्यूटन: स्थानीय चर सही ढंग से परिभाषित नहीं किया गया है। – Azodious

संबंधित मुद्दे