plsql
Ciclo continuo
Ricerca…
Sintassi
- CICLO CONTINUO
- [Istruzioni];
- USCIRE QUANDO [condizione per il ciclo di uscita];
- FINE LOOP;
Ciclo semplice
DECLARE
v_counter NUMBER(2);
BEGIN
v_counter := 0;
LOOP
v_counter := v_counter + 1;
dbms_output.put_line('Line number' || v_counter);
EXIT WHEN v_counter = 10;
END LOOP;
END;
MENTRE Ciclo
Il ciclo WHILE viene eseguito fino a quando non viene soddisfatta la condizione di fine. Semplice esempio:
DECLARE
v_counter NUMBER(2); --declaration of counter variable
BEGIN
v_counter := 0; --point of start, first value of our iteration
WHILE v_counter < 10 LOOP --exit condition
dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
v_counter := v_counter + 1; --incrementation of counter value, very important step
END LOOP; --end of loop declaration
END;
Questo ciclo verrà eseguito fino a quando il valore corrente della variabile v_counter sarà inferiore a dieci.
Il risultato:
Current iteration of loop is 0
Current iteration of loop is 1
Current iteration of loop is 2
Current iteration of loop is 3
Current iteration of loop is 4
Current iteration of loop is 5
Current iteration of loop is 6
Current iteration of loop is 7
Current iteration of loop is 8
Current iteration of loop is 9
La cosa più importante è che il nostro ciclo inizia con il valore "0", quindi la prima riga dei risultati è "L'iterazione corrente del ciclo è 0".
PER Loop
Loop FOR funziona su regole simili a quelle di altri loop. Il ciclo FOR viene eseguito il numero esatto di volte e questo numero è noto all'inizio - i limiti inferiore e superiore sono impostati direttamente nel codice. In ogni passaggio di questo esempio, il ciclo aumenta di 1.
Semplice esempio:
DECLARE
v_counter NUMBER(2); --declaration of counter variable
BEGIN
v_counter := 0; --point of start, first value of our iteration, execute of variable
FOR v_counter IN 1..10 LOOP --The point, where lower and upper point of loop statement is declared - in this example, loop will be executed 10 times, start with value of 1
dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
END LOOP; --end of loop declaration
END;
E il risultato è:
Current iteration of loop is 1
Current iteration of loop is 2
Current iteration of loop is 3
Current iteration of loop is 4
Current iteration of loop is 5
Current iteration of loop is 6
Current iteration of loop is 7
Current iteration of loop is 8
Current iteration of loop is 9
Current iteration of loop is 10
Loop FOR ha proprietà aggiuntive, che funzionano in senso inverso. L'utilizzo di una parola aggiuntiva 'REVERSE' nella dichiarazione del limite inferiore e superiore del ciclo consente di farlo. Ogni esecuzione del valore di decremento del loop di v_counter di 1.
Esempio:
DECLARE
v_counter NUMBER(2); --declaration of counter variable
BEGIN
v_counter := 0; --point of start
FOR v_counter IN REVERSE 1..10 LOOP
dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
END LOOP; --end of loop declaration
END;
E il risultato:
Current iteration of loop is 10
Current iteration of loop is 9
Current iteration of loop is 8
Current iteration of loop is 7
Current iteration of loop is 6
Current iteration of loop is 5
Current iteration of loop is 4
Current iteration of loop is 3
Current iteration of loop is 2
Current iteration of loop is 1