2011-09-05 8 views
5

वास्तव में बेवकूफ प्रश्न के लिए क्षमा करें, मैं एक नई भाषा सीख रहा हूँ और इस कोड को ले जा रहा:पहले कभी जावा प्रोग्राम गलत आउटपुट

public class Exercise01 { 
    int i; 
    char c; 

    public static void main(String[] args) { 

     Exercise01 E = new Exercise01(); 
     System.out.println("i = " + E.i); 
     System.out.println("c = [" + E.c + "]"); 
    } 
} 
/* Output: 
i = 0 
c = [ 
*/ 

क्यों उत्पादन का उत्पादन नहीं करता "]" चरित्र? क्या यह यूनिकोड के साथ कुछ करने के लिए है?

PostEdited: चर E.c प्रयोग प्रयोजन के लिए आरंभ नहीं किया गया था।

+1

E.c का मूल्य क्या है? –

+0

यह मेरी तरफ से बनाया जाता है। क्या यह सब कोड है? –

+0

यह मेरे लिए भी अपेक्षित आउटपुट देता है। – luketorjussen

उत्तर

4

आप अशक्त चरित्र मुद्रित करने के लिए के रूप में अपने char c नहीं initialised की जरूरत है कोशिश कर रहे हैं। यानी \0 दिलचस्प बात यह है कि आप आसानी से इस चरित्र को कॉपी और पेस्ट नहीं कर सकते क्योंकि अधिकांश सी कोड इसे स्ट्रिंग मार्कर के अंत के रूप में देखता है।

मैं जब मैं कोड चलाने ] देखते हैं।

char c = '?'; 

के साथ अपने कोड बदलने का प्रयास करें मुझे

i = 0 
c = [?] 

एक तरह से इस समस्या को पुन: पेश करने के लिए एक उत्पादन देता यूनिक्स

java Main | more 

पर चलाने के लिए है जो उत्पादन

i = 0 
c = [ 
+0

यह एक सी सवाल नहीं है, यह एक जावा सवाल है, और मेरे ऊपर के कई उपयोगकर्ताओं का कहना है कि उन्हें उम्मीद के अनुसार आउटपुट मिला है! – Rakesh

+4

सवाल यह है कि 'आउटपुट क्यों उत्पादन नहीं करता है "]" चरित्र? "" यह मेरे लिए काम करता है "एक जवाब नहीं है। एक सी प्रोग्राम के साथ एक बातचीत, एक संभावित जवाब है। –

+1

'more' सी में लिखा गया एक प्रोग्राम है इसका उपयोग करना या ऐसा कुछ आउटपुट का एक छोटा सा कारण बन सकता है। –

6

हो सकता है कि जगह अपने कार्यक्रम के लिए, एक कंसोल या एक खिड़की outputting है, U + 0000 चरित्र जो ई.सी. का मूल्य है से उलझन में हो रही है

यह मेरे लिए ठीक काम करता है।

प्रारंभ E.c और फिर कोशिश करें।

1

शायद तथ्य यह है कि E.c कुछ भी करने के लिए आरंभ नहीं किया है के साथ क्या करना है

+3

जेएलएस 4.12.5: 'प्रत्येक क्लास वेरिएबल, इंस्टेंस वैरिएबल, या सर घटक को डिफॉल्ट वैल्यू के साथ प्रारंभ किया जाता है जब इसे बनाया जाता है (§15.9, §15.10): [...] char टाइप करने के लिए, डिफ़ॉल्ट मान शून्य है चरित्र, यानी, '\ u0000'। –

1

मुझे लगता है कि ऐसा इसलिए है क्योंकि c आरंभ नहीं किया गया है और इसलिए \0 रखती है, अर्थात "पंक्ति के अंत"। तो, लाइन के अंत तक println प्रिंट और प्रिंट नहीं करता अपने ]

+0

-1 println पूरे स्ट्रिंग को प्रिंट करता है। यह यूआई उचित रूप से प्रदर्शित नहीं हो सकता है। – Stefan

0

आप अपने चार सी के साथ-साथ पूर्णांक मैं प्रारंभ करना चाहिए। अच्छा कोड अभ्यास: एक चर घोषित करने के बाद अपने चर को प्रारंभ करना महत्वपूर्ण है!

+0

हां, यह एक अच्छा अभ्यास है, लेकिन कहीं और जवाबों पर नज़र डालें। –

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