2014-05-05 15 views
5

अगर मैं चला जाता है उस तरहजावा में कास्टिंग की प्राथमिकता क्या है?

int s = (double) t/2 

कुछ के रूप में

int s = (double) (t/2) 

या

int s = ((double) t)/2 

ही है कोड की एक पंक्ति है?

+0

[जावा ऑपरेटर प्राथमिकता दिशानिर्देश] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2137690/java-operator-precedence-guidelines) –

+0

http://stackoverflow.com/questions/5762270/java-casting- आदेश – knoight

उत्तर

6

This should make things a bit clearer. सीधे शब्दों में कहें, एक डाली एक प्रभाग संचालन पर पूर्वता लेता है, तो यह एक ही बात हो के रूप में के रूप में

int s = ((double)t)/2; 

संपादित एक ही आउटपुट देना होगा: knoight बताया गया है, यह तकनीकी रूप से एक ही ऑपरेशन नहीं है क्योंकि यह बिना किसी कोष्ठक के होगा, क्योंकि उनकी प्राथमिकता भी है। हालांकि, इस उदाहरण के प्रयोजनों के लिए, यह एक ही परिणाम प्रदान करेगा, और सभी उद्देश्यों और उद्देश्यों के बराबर है।

+1

ब्रांड्स प्राथमिकता ओवरराइड - तो यह काफी समान नहीं है। – knoight

+1

@knoight मेरा मतलब था, जबकि यह तकनीकी रूप से एक अलग ऑपरेशन है, ओवरराइड प्राथमिकताओं को नहीं बदलता है, इसलिए यह एक उचित तुलना है। – caseif

+0

आप सही हैं कि इस विशेष उदाहरण में ब्रांड्स का अंतिम परिणाम पर कोई प्रभाव नहीं पड़ता है - हालांकि जिस बिंदु को मैं बनाना चाहता था वह था कि ब्रांड्स मूल्यांकन के क्रम को प्रभावित करते हैं। तो यदि ओपी ने एक अलग उदाहरण चुना है, जैसे कि मैंने ऊपर दिए गए लिंक में से एक, तो कोष्ठक की नियुक्ति बहुत महत्वपूर्ण हो जाती है - और मुझे लगता है कि आपके उत्तर में अनदेखा किया गया था। मूल्यांकन पर छूने वाला एक संपादन मेरे वोट को बदलता है – knoight

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