Sunday 15 May 2011

arrays - Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100 -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

    मैं एक परियोजना का निर्माण कर रहा हूँ जावा (नेटबीन्स के साथ) जो कक्षाओं के बारे में है तो मेरे पास यह <प्री> आयात javax.swing। *; सार्वजनिक कक्षा TestHumanResourcesTEI {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {अंतिम इंट एन = 100; छात्र [] सरणी = नया विद्यार्थी [एन]; प्रोफेसर [] सरणी पी = नए प्रोफेसर [एन]; OfficeEmployee [] arrayOP = नए OfficeEmployee [N]; Int i, j = 0, k = 0; के लिए (i = 0; i & lt; N; i ++) {सरणी [i] = नया छात्र (); सरणी पी [आई] = नए प्रोफेसर (); सरणी [i] = नया OfficeEmployee (); } I = 0;

    फिर एक मेनू का चयन करता है, जहां मैं उपयोगकर्ता को एक विकल्प के लिए पूछता हूं (लेकिन मुझे लगता है कि यह अप्रासंगिक है) और फिर इस भाग का पालन

      स्विच ( C) {मामला 1: करना {(अधिक क्रिया) करना {grd1 = JOptionPane.showInputDialog ("डालें ग्रेड (सम्मिलित -1 जब किया जाता है):"); Grd = डबल। पीआरएडी डबल (grd1); जबकि (grd! = 21) सरणी [i] .इन्सर्टग्रेड (grd); } जबकि (grd! = 21); i ++; (अधिक कार्रवाई) तोड़; मामला 2: करना {(अधिक क्रियाएं) करना {ls1 = जॉप्शनपेन.शोइनपुट डायलोग ("सबक जोड़ें (सम्मिलित करें -1 होने पर):"); Ls = पूर्णांक। पार्सआईंट (एलएस 1); जबकि (ls! = 21) सरणी [j] .addLesson (ls1); } जबकि (ls! = 21); J ++; (अधिक कार्रवाई) तोड़;   

    वहां भी दो और मामले हैं लेकिन मुझे लगता है कि उनके पास त्रुटि के साथ कुछ भी नहीं है इसके अलावा यहां दो मेरी कक्षाएं हैं जिनका उपयोग 2 मामलों में किया जाता है।

      सार्वजनिक वर्ग छात्र मानव संसाधनों का विस्तार करता है I निजी इंट काउंटर = 0; निजी डबल ग्रेड [] = नया डबल [100]; निजी डबल ग्रेडम = 0; सार्वजनिक छात्र () {} सार्वजनिक छात्र (इंट रेगएनम) {AM = regNum; } (अधिक तरीके) सार्वजनिक शून्य डालेंग्रेड (डबल जी) {g = ग्रेड [काउंटर]; काउंटर ++; } (और अधिक विधियां)}   

    और दूसरा वाला

      सार्वजनिक वर्ग के प्रोफेसर कर्मचारी {निजी स्ट्रिंग kindOfProfessor; प्राइवेट स्ट्रिंग सबकटेओटेक [] = नया स्ट्रिंग [30]; निजी इंट काउंटर = 0; सार्वजनिक प्रोफेसर () {} सार्वजनिक प्रोफेसर (स्ट्रिंग के) {k = kindOfProfessor; } (अधिक तरीके) सार्वजनिक शून्य addLesson (स्ट्रिंग एल) {l = lessonsToTeach [काउंटर]; काउंटर ++; } (अधिक विधियां)}}   

    त्रुटि कहती है

      थ्रेड में अपवाद "मुख्य" java.lang.ArrayIndexOfOfBoundsException: 100 पर testhumanresourcestei.Student.insertGrade (छात्र.जावा 26) testhumanresourcestei.TestHumanResourcesTEI.Main (TestHumanResourcesTEI.java:54)   

    लाइनों के अनुसार यह इंगित करता है कि समस्याएं विधियों insertGrade से arrays के साथ है और AddLesson (मुझे लगता है कि अगर मैं case2 चुनता है तो यह त्रुटि उत्पन्न होगी।

    यह पढ़ने के लिए आपका धन्यवाद। मैंने पढ़ने के लिए आसान बनाने के लिए कोड के कुछ "अप्रासंगिक" भाग छोड़े हैं। मेरे apoligies स्वीकार अगर आप अपने अंग्रेजी में कुछ मामूली गलतियों को खोजने के लिए और जिस तरह से मैं इस सवाल में कोड (पहली बार stackoverflow में डाल दिया है तो मैं नहीं जानता कि कैसे कोड के साथ एक प्रश्न को सही ढंग से डाल करने के लिए: डी)

    अपने मामला 1 में इस रेखा को देखें:

      जबकि ( Grd! = 21) सरणी [i] .इन्सेटग्रेड (जीआरडी);   

    यह हमेशा के लिए लूप होगा, क्योंकि grd लूप के अंदर नहीं बदलता है। हर बार, काउंटर एक बार ऊपर जाता है, और जब यह 100 हो जाता है तो अपवाद फेंका जाता है क्योंकि आप ग्रेड [100] और ग्रेड की लंबाई 100 है, इसलिए सूचकांक 0 से 99।

    (मुझे लगता है कि आप यदि की बजाय जबकि )

    > संयोग से, यहां:

      सार्वजनिक शून्य डालेंग्रेड (डबल जी) {g = ग्रेड [काउंटर]; काउंटर ++; }   

    ... मुझे लगता है कि आप ग्रेड [काउंटर] = g कहने का मतलब है।

No comments:

Post a Comment