/ / लूप कन्फ्यूजन के लिए PHP - php, लूप्स, फॉर-लूप

PHP फॉर लूप भ्रम - PHP, लूप, फॉर-लूप

कोडिंग की दुनिया में नया हूँ और यह मेरी पहली बार समझ में आ रहा है। मैंने एक वेबसाइट पर एक उदाहरण देखा और परिणाम से पूरी तरह भ्रमित हूं।

/* 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 का उपयोग करें