2015-11-08 8 views
5

मुझे आश्चर्य है कि अगर कोई यहां जानता है कि समाप्ति स्थिति में लूप के लिए निम्नलिखित का अर्थ है।लूप समाप्ति स्थिति के लिए यह जावा क्या है?

for (int i = 0; i < 1 << Level; i++) { 
... 
} 
+6

'<<' थोड़ा सा ऑपरेटर है। यह 2 स्तर के समय से गुणा करता है। –

उत्तर

8

<< बाईं, जहां n दूसरे संकार्य है करने के लिए पहली संकार्य के टुकड़े n बार बदलाव।

इसलिए 1 << Level बदलाव संख्या 1 बाईं है, जो की गणना 2^स्तर के बराबर है करने के लिए Level समय की एक 1 बिट।

तो i < 1 << Leveli < Math.pow(2,Level) के बराबर है।

3

सीधे शब्दों में

कहा
for (int i = 0; i < 1 << Level; i++) { 
... 
} 

for (int i = 0; i < Math.pow(2,Level); i++) { 
... 
} 

के बराबर है तो पाश के लिए जब से तुम 0 से गिनती कर रहे हैं के लिए "Math.pow (2, स्तर)" बार चलेंगे Math.pow (2, स्तर) -1।

अगर स्तर = 2 तो पाश

for(int i =0;i<4;i++){} 

है अगर स्तर = 3 तो पाश

for(int i =0;i<8;i++){} 

है अगर स्तर = 5 तो पाश

for(int i =0;i<32;i++){} 
0

में है अन्य उत्तरों के अलावा यह अभिव्यक्ति के चारों ओर कोष्ठक डालने में मदद कर सकता है अगर यह अस्पष्ट है

for (int i = 0; i < (1 << Level); i++) { 
... 
} 
Level के बाद से

इसके अलावा, एक चर यह जब तक यह एक निरंतर है एक छोटा सा पत्र अर्थात level के लिए सुझाव दिया है तो यह LEVEL होना चाहिए। और मुझे लगता है कि सामान्य रूप से पठनीयता> प्रदर्शन (यदि यह भी एक समस्या है?)। तो Math.pow(2,Level) यह समझने में बहुत आसान है कि आप निम्न स्तर के प्रोग्रामर नहीं हैं, सी

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