कोडिंग की दुनिया में नया हूँ और यह मेरी पहली बार समझ में आ रहा है। मैंने एक वेबसाइट पर एक उदाहरण देखा और परिणाम से पूरी तरह भ्रमित हूं।
/* Sample Code 1 */
$counter=0
$start=1
for($start;$start<11;start++) {
$counter=$counter+1;
print $counter;
}
यह मुझे 1,2,3,4,5,6,7,7,9,9,10 परिणाम देता है
अब अगर मैं निम्नानुसार कोड को अपडेट करता हूं
/* Sample Code 2 */
$counter=11;
$start=1;
for($start;$start<11;start++) {
$counter=$counter+1;
print $counter;
}
यह मुझे 12,13,14,15,16,17,18,19,20 परिणाम देता है
हालाँकि अगर मैं निम्नानुसार कोड को अपडेट करता हूं
/* Sample Code 3 */
$counter=11;
$start=1;
for($start;$start<11;start++) {
$counter=$counter-1;
print $counter;
}
मुझे 10,9,8.7.6,5,4,3,2,1 परिणाम मिले
यदि मैं गलत हूं तो मुझे बताएं
यदि चर $ काउंटर का मूल्य 11 है, तो मैं अनिवार्य रूप से कोड $ काउंटर = $ काउंटर 1 में 11 + 1 पर वेतन वृद्धि शुरू करता हूं। क्या वो सही है?
लेकिन जो मुझे भ्रमित करता है वह यह है कि सैंपल कोड 2 में परिणाम कैसे संभव है यदि फॉर लूप में मेरा अंतिम मूल्य $ 11 <है। क्या इसका मतलब यह 11 से कम होना है?
उत्तर:
जवाब के लिए 0 № 1जब आप लूप शुरू करते हैं, $start
11 से कम है। फिर इसे पुनरावृत्ति के अंत में बढ़ाया जाता है। फिर, लूप समाप्त हो जाता है यदि यह 11 तक पहुंच गया है।
वह है, अगर $start
10 है, तो यह लूप में प्रवेश करेगा। यह 11 तक पहुंचता है, इसलिए for
बयान लूप से बाहर निकलता है। यह 11 है जब लूप समाप्त होता है।
जवाब के लिए 0 № 2
यहाँ एक विवरण मैंने लिखा है
for (//declare loop
$start = 0; //declare starting value and the value to store it in
$start < 10; // Each time it comes through, if $start is under 10, do the loop. if it is 10, exit
$start++ //Increment $start by 1
)
जवाब के लिए 0 № 3
ऐसा लगता है कि आप अपने दूसरे उदाहरण परिणामों में "21" गायब हैं। क्या यह आपके भ्रम का कारण हो सकता है?
जवाब के लिए 0 № 4
मैं आपको उपरोक्त सभी उदाहरणों से स्पष्टीकरण दूंगा:
नमूना कोड 1
$counter=0;
$start=1;
यह दोनों चर घोषित करने और शुरू करने के लिए चर घोषणा है।
for($start;$start<11;start++) {
$counter=$counter+1;
for loop
संरचना है:
for({loop initialization}; {loop condition}; {per loop process}){
//the rest of loop process
}
व्याख्या:
- जैसा कि आप देख सकते हैं, उदाहरण # 1 से 1 लूप शुरू (से लिया गया)
$start = 1
) और कर रहा हैloop for as long as $start is smaller than 11
। इसे हमेशा के लिए पाले से बचाने के लिए, वह कोड जोड़ें$start++
जिसका अनुवाद है$start = $start + 1
। इस तरह, हर लूप के लिए,$start
1 से जोड़ा जाता है। - the
loop condition
वापस जाना हैtrue
आदेश में पाश को चलाने के लिए. यदि यह वापसfalse
, पाश छोड़ देंगे.
अब, चलो "की जांच क्या" कि पाश के अंदर:
$counter=$counter+1;
print $counter;
तुम वहाँ देखते हैं: $counter=$counter+1
. इसका मतलब है, आप वृद्धि हर पाश के लिए एक से $counter और जिसके परिणामस्वरूप प्रिंट $counter
.
चलो"s प्रक्रिया टूटने (हम के साथ पाश शुरू ] 1
के रूप में यह क्या"s द्वारा परिभाषित $start = 1
):
loop # $start ($start < 11?) $counter ($counter = $counter + 1)
1 1 Y 1
2 2 Y 2
3 3 Y 3
4 4 Y 4
5 5 Y 5
6 6 Y 6
7 7 Y 7
8 8 Y 8
9 9 Y 9
10 10 Y 10
11 11 N 11
ऊपर की प्रक्रिया टूटने से, हम उस स्थिति को देख सकते हैं ($start < 11
) में परिणाम है false
पाश #11 पर. यही कारण है कि परिणाम है 1..10
, नहीं 1..11
.
वही चला जाता है उदाहरण # 2:
$counter=11;
$start=1;
लूप संरचना:
for($start;$start<11;start++) {
$counter=$counter+1;
चलो"s इस प्रक्रिया को तोड़ने:
loop # $start ($start < 11?) $counter ($counter = $counter + 1)
1 1 Y 12
2 2 Y 13
3 3 Y 14
4 4 Y 15
5 5 Y 16
6 6 Y 17
7 7 Y 18
8 8 Y 19
9 9 Y 20
10 10 Y 21
11 11 N 22
यह उत्पादन होगा 12..21
. क्योंकि जब लूप #11 हुआ, तो यह जाँच करता है कि $start < 11
है false
. इसलिए, लूप से बाहर निकलें।
जवाब के लिए 0 № 5
कृपया अपने कोड का विश्लेषण करें. आप एक स्पष्ट भ्रम b/w $start और $ काउंटर चर है.अपने चर के माध्यम से जा रहे हैं क्या देखने के लिए इतनी के रूप में var-dump का उपयोग करें