Riferimento > Funzioni > Funzioni logiche > While
 

While

Ripete la logica mentre la condizione è vera, quindi restituisce il risultato.

Formato 

While ( [ variabileIniziale ] ; condizione ; [ logica ] ; risultato )

Parametri 

variabileIniziale - definizioni di variabile disponibili per l'utilizzo nei seguenti parametri.

condizione - un'espressione booleana valutata prima di ogni iterazione del ciclo. Mentre è vera, il ciclo si ripete. Quando è falsa, il ciclo si arresta.

logica - definizioni di variabile valutate ogni volta che il ciclo si ripete.

risultato - un'espressione restituita quando il ciclo si arresta.

Tipo di dati riportato 

Testo, Numero, Data, Ora, Indicatore data e ora, Contenitore

Creata in 

FileMaker Pro 18.0 Advanced

Descrizione 

La funzione While esegue le seguenti operazioni:

1. Valuta il parametro variabileIniziale.

2. Valuta il parametro condizione.

3. Se condizione è:

Vera (qualsiasi risultato numerico diverso da zero), valuta logica, quindi ripete il passo 2.

Falsa (0), arresta il ciclo e restituisce risultato.

È possibile specificare diverse definizioni di variabile per variabileIniziale e logica racchiudendole tra parentesi quadre [ ] e separando ognuna con un punto e virgola. Ad esempio:

While (
[ varIniz1 = valore1 ; varIniz2 = valore2 ; ... ] ;
condizione ;
[ varLogica1 = espressione1 ; varLogica2 = espressione2 ; ... ] ;
result
)

Le variabili specificate nei parametri variabileIniziale e logica vengono valutate da sinistra a destra. Queste variabili hanno lo stesso campo di applicazione e possono essere utilizzate nei parametri condizione e risultato. Vedere Utilizzo di variabili.

Le variabili che devono conservare le informazioni da un'iterazione del ciclo a quella successiva devono essere inizializzate prima di essere utilizzate nel parametro logica. In caso contrario, i loro valori verranno eliminati.

Note 

Per evitare cicli infiniti che potrebbero causare il blocco dei client FileMaker, questa funzione restituisce "?" quando il numero di iterazioni del ciclo supera un limite. Per impostare il limite, utilizzare la funzione ImpostaRicorsività.

Esempio 1 

Esegue il totale dei valori nella variabile ripetuta $a. Ogni iterazione del ciclo incrementa il valore conteggio, lo utilizza per specificare la ripetizione della variabile $a e aggiunge il valore al totale progressivo. Questo esempio restituisce 150.

While (
[
conteggio = 0 ;
totale = 0 ;
$a[1] = 25 ;
$a[2] = 50 ;
$a[3] = 75
] ;
conteggio < 3 ;
[
conteggio = conteggio + 1 ;
totale = totale + $a [conteggio]
] ;
totale
)

Esempio 2 

Aggiunge cinque punti tra due valori di testo. Il campo di applicazione della variabile della funzione Città nella funzione While è differente da quello in Dichiara; pertanto, questo esempio restituisce San Francisco.....Parigi.

Dichiara (
Città = "Parigi" ;
While (
[ Città = "San Francisco" ; i = 0 ] ;
i < 5 ;
[
i = i + 1 ;
Città = Città & "."
] ;
Città
)
& Città )

Se ogni istanza della variabile della funzione Città venisse sostituita con la variabile locale $Città, l'esempio restituirebbe San Francisco.....San Francisco..... perché $Città avrebbe lo stesso campo di applicazione in tutto il calcolo.

Esempio 3 

Mostra come il campo di applicazione delle variabili delle funzioni sia diverso quando queste vengono definite prima di un ciclo While rispetto a quando vengono definite nei parametri variabileIniziale e logica del ciclo While.

I valori di it1 e it2 definiti prima del ciclo While sono disponibili all'interno del ciclo, ma le modifiche apportate a it1 e it2 all'interno del ciclo non influenzano i valori di queste variabili dopo il ciclo. Questo esempio mostra inoltre come il valore 2 della variabile it2 definito nel parametro logica si perda dopo ogni iterazione del ciclo perché it2 non è inizializzato nel parametro variabileIniziale.

Dichiara (
[ // Prima del ciclo While; imposta la riga 1.0 del risultato
it1 = "a"; // Definita nel campo di applicazione di Dichiara
it2 = 1; // Definita nel campo di applicazione di Dichiara
out = "1.0 " & it1 & " " & it2 & ¶
];
While
(
[ // variabiliIniziali; imposta le righe 2.0 e 3.0 del risultato
i = 0;
out = out & "2.0 " & it1 & " " & it2 & ¶;
it1 = "b"; // Definita nel campo di applicazione di While
out = out & "3.0 " & it1 & " " & it2 & ¶
];
// condizione
i < 2;
[ // logica; imposta le righe 4.x e 5.x del risultato
  // A questo punto le variabili definite nel parametro logica nei precedenti passaggi
  // attraverso il ciclo vengono eliminate
i = i + 1;
out = out & "4." & i & " " & it1 & " " & it2 & ¶;
it1 = "c"; // Riutilizzata nel campo di applicazione di While
it2 = 2; // Ridefinita nel campo di applicazione di While
out = out & "5." & i & " " & it1 & " " & it2 & ¶
];
// risultato; imposta la riga 6.0 del risultato
out & "6.0 " & it1 & " " & it2 & ¶
)
// Dopo il ciclo While; imposta la riga 7.0 del risultato
& "7.0 " & it1 & " " & it2 & ¶
)

Il risultato è:

1.0 a 1
2.0 a 1
3.0 b 1
4.1 b 1
5.1 c 2
4.2 c 1
5.2 c 2
6.0 c 2
7.0 a 1

Argomenti correlati 

Funzioni (per categoria)

Funzioni (in ordine alfabetico)

Informazioni sulle formule

Informazioni sulle funzioni

Definizione di campi Calcolo

Utilizzo di operatori nelle formule