/ / PHP For Loop Confusion - php, loop, for-loop

PHP For Loop Confusion - php, loop, for-loop

Sono nuovo nel mondo della programmazione ed è la prima volta che capisco i loop. Ho visto un esempio su un sito web e sono completamente confuso dal risultato.

/* Sample Code 1 */

$counter=0
$start=1

for($start;$start<11;start++) {
$counter=$counter+1;
print $counter;
}

Questo mi dà il risultato di 1,2,3,4,5,6,7,8,9,10

Ora se aggiorno il codice come segue

/* Sample Code 2 */

$counter=11;
$start=1;

for($start;$start<11;start++) {
$counter=$counter+1;
print $counter;
}

Questo mi dà il risultato 12,13,14,15,16,17,18,19,20

Tuttavia se aggiorno il codice come segue

/* Sample Code 3 */

$counter=11;
$start=1;

for($start;$start<11;start++) {
$counter=$counter-1;
print $counter;
}

Ottengo il risultato 10,9,8,7,6,5,4,3,2,1

Perfavore, correggimi se sbaglio

Se il contatore $ variabile ha il valore di 11, essenzialmente inizio l'incremento a 11 + 1 nel codice $ counter = $ counter + 1. È corretto?

Ma ciò che mi confonde è che come è possibile ottenere il codice di esempio 2 se il mio valore finale nel ciclo FOR è $ start <11. Non significa che deve essere inferiore a 11?

risposte:

0 per risposta № 1

Quando inizi il ciclo, $start è inferiore a 11. Quindi viene incrementato alla fine dell'iterazione. Quindi, il ciclo termina se ha raggiunto 11.

Cioè, se $start è 10, quindi entrerà nel ciclo. Raggiunge l'11, quindi il for la dichiarazione esce dal ciclo. È 11 quando il ciclo finisce.


0 per risposta № 2

Ecco una descrizione che ho scritto

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 per risposta № 3

sembra che manchi "21" nei tuoi secondi risultati di esempio. Potrebbe essere questa la causa della tua confusione?


0 per risposta № 4

Ti darò una spiegazione da tutti gli esempi sopra:

Codice di esempio 1

$counter=0;
$start=1;

Questa è una dichiarazione variabile per dichiarare e inizializzare entrambe le variabili.

for($start;$start<11;start++) {
$counter=$counter+1;

for loop ha una struttura:

for({loop initialization}; {loop condition}; {per loop process}){
//the rest of loop process
}

Spiegazione:

  • Come puoi vedere, esempio # 1 avvia il ciclo da 1 (tratto da $start = 1) e facendo loop for as long as $start is smaller than 11. Per impedire il looping per sempre, aggiungere quel codice $start++ che si traducono in $start = $start + 1. In questo modo, per ogni ciclo, $start è aggiunto da 1.
  • il loop condition deve tornare true per far funzionare il ciclo. Se ritorna false, il ciclo si chiuderà.

Ora, esaminiamo cosa c'è dentro quel ciclo:

$counter=$counter+1;
print $counter;

Vedi lì: $counter=$counter+1. Significa che si incrementa il contatore $ di uno per ogni ciclo e si stampa il risultato $counter.

Analizziamo il processo (iniziamo il ciclo # con 1 come è ciò che è definito da $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

Dall'analisi del processo sopra, possiamo vedere quella condizione ($start < 11) è risultato in false sul ciclo # 11. Ecco perché il risultato è 1..10no 1..11.

Lo stesso vale per Esempio # 2:

$counter=11;
$start=1;

Struttura ad anello:

for($start;$start<11;start++) {
$counter=$counter+1;

Analizziamo questo processo:

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

Questo uscirà 12..21. Perché quando si è verificato il ciclo # 11, lo controlla $start < 11 è false. Pertanto, il ciclo si chiude.


0 per risposta № 5

Per favore analizza il tuo codice .. hai una chiara confusione b / n $ start e $ counter variable. per favore usa var_dump per vedere cosa stanno passando le tue variabili