While Statement Implementation

Non è disponibile un'istruzione while diretta in Batch Script, ma possiamo eseguire un'implementazione di questo ciclo molto facilmente utilizzando l'istruzione if e le etichette.

Il diagramma seguente mostra la spiegazione schematica di questo ciclo.

La prima parte dell'implementazione del while consiste nell'impostare i contatori che verranno utilizzati per controllare la valutazione della condizione "if". Definiamo quindi la nostra etichetta che verrà utilizzata per incorporare l'intero codice per l'implementazione del ciclo while. La condizione "if" valuta un'espressione. Se l'espressione restituisce true, il blocco di codice viene eseguito. Se la condizione restituisce false, il ciclo viene chiuso. Quando il blocco di codice viene eseguito, tornerà all'istruzione label per l'esecuzione di nuovo.

Di seguito è riportata la sintassi dell'implementazione generale dell'istruzione while.

Sintassi

Set counters
:label
If (expression) (
   Do_something
   Increment counter
   Go back to :label
)
  • L'intero codice per l'implementazione while viene inserito all'interno di un'etichetta.

  • Le variabili del contatore devono essere impostate o inizializzate prima che inizi l'implementazione del ciclo while.

  • L'espressione per la condizione while viene eseguita utilizzando l'istruzione "if". Se l'espressione restituisce true, viene eseguito il codice pertinente all'interno del ciclo "if".

  • Un contatore deve essere adeguatamente incrementato all'interno dell'istruzione 'if' in modo che l'implementazione while possa terminare ad un certo punto nel tempo.

  • Infine, torneremo alla nostra etichetta in modo da poter valutare di nuovo la nostra dichiarazione "if".

Di seguito è riportato un esempio di un'istruzione del ciclo while.

Esempio

@echo off
SET /A "index = 1"
SET /A "count = 5"
:while
if %index% leq %count% (
   echo The value of index is %index%
   SET /A "index = index + 1"
   goto :while
)

Nell'esempio precedente, inizializziamo prima il valore di una variabile intera indice su 1. Quindi la nostra condizione nel ciclo 'if' è che stiamo valutando la condizione dell'espressione come quell'indice dovrebbe essere inferiore al valore di la variabile count. Fino a quando il valore di index è inferiore a 5, stamperemo il valore di index e quindi incrementeremo il valore di index.

Produzione

Il comando precedente produce il seguente output.

The value of index is 1
The value of index is 2
The value of index is 3
The value of index is 4
The value of index is 5