Informazioni sulle istruzioni condizionali in iLogic

iLogic fornisce istruzioni condizionali che è possibile utilizzare nella finestra di dialogo Modifica regola.

È possibile posizionare le istruzioni nelle regole (piccoli programmi Visual Basic) definite per il modello. Le istruzioni condizionali quali If-Then-Else consentono alle regole di eseguire azioni in base a determinati criteri.

Istruzione If-Then-Else in iLogic

Nell'istruzione If-Then-Else viene eseguita una serie di azioni se la condizione è vera, un'altra serie se la condizione è falsa.

Dopo l'esecuzione delle istruzioni associate alla condizione vera o falsa, il controllo del programma riprende con l'istruzione successiva.

In iLogic è possibile utilizzare il modulo blocco o il modulo a più linee multilinea per implementare la struttura If-Then-Else.

Ad esempio:

If size = “small” Then
length = 6.0
Else
length = 12
End If

Se l'espressione condizionale è vera, vengono eseguite le istruzioni tra le parole chiave Then ed Else. Le istruzioni tra le parole chiave Else ed End If vengono ignorate. Se l'espressione condizionale è false, le istruzioni tra le parole chiave Else ed End If vengono eseguite. Le istruzioni tra le parole chiave Then ed Else vengono ignorate. In ogni caso, il controllo del programma riprende con l'istruzione successiva all'istruzione End If.

Istruzione If-Then in iLogic

In un'istruzione If-Then-Else, viene eseguita un'azione indipendentemente dal fatto che la condizione sia true o false. Tuttavia, talvolta è necessario eseguire un'azione o una serie di azioni solo se una condizione è true, e nessuna azione se la condizione è false.

È possibile omettere la parte Else della struttura If del blocco. Ad esempio:

If size = “small” Then
length = 6.0
End If

Serie di azioni null o empty in iLogic

È inoltre possibile utilizzare serie di azioni null o empty nel modulo blocco dell'istruzione If. È possibile, ad esempio, precisare "se la condizione è vera, non eseguire alcuna operazione - altrimenti, eseguire un'operazione", come nel blocco seguente:

If length  > 20 Then
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title")
End If

Quando si utilizza un gruppo di azioni vuoto, migliorare la leggibilità includendo un commento nella posizione prevista per le istruzioni true:

If length  > 20 Then ’do nothing
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in ", "Title")
End If

Utilizzo di un'istruzione If come istruzione a riga singola

Sebbene il modulo del blocco dell'istruzione If migliori la leggibilità, è possibile scrivere l'istruzione If come riga singola. In questo formato, l'istruzione End If non viene utilizzata.

Gli esempi includono:

If length < 20 Then MessageBox.Show("Length is Too Short", "Title")
If mass < 1000 Then length =20 Else length =40

Utilizzo di variabili booleane nelle espressioni condizionali

Una variabile booleana, che può contenere il valore True o False, è utilizzabile in qualsiasi punto in cui è presente un'espressione relazionale.

Ad esempio, le seguenti due istruzioni sono equivalenti:

If Feature.IsActive("Fillet1") = true Then . . .
If Feature.IsActive("Fillet1") Then . . .

Nella seconda istruzione il valore True è implicito.

Analogamente, le due istruzioni seguenti possono essere utilizzate in modo intercambiabile per verificare se una variabile booleana è falsa:

If Feature.IsActive("Fillet1") = false Then . . .
If Not Feature.IsActive("Fillet1") Then . . .

Questi esempi mostrano il risultato di una funzione. Altri esempi includono l'utilizzo di un nome parametro come variabile booleana, o l'utilizzo di una variabile locale per contenere un valore booleano.

Struttura Case nelle istruzioni condizionali in iLogic

La struttura Case consente di scegliere tra più di due alternative.

È possibile implementare la struttura Case utilizzando una struttura a blocco esteso If o la struttura dell'istruzione Select Case.

Istruzione If a blocco esteso (If-Then-ElseIf) in iLogic

L'istruzione a blocco esteso If utilizza una o più clausole ElseIf nidificate tra la prima clausola If e l'ultima clausola Else. La parola chiave ElseIf è una sola parola.

Ad esempio:

If material = "Steel" Then
density = 0.284
ElseIf material = "Copper" Then
density = 0.323
ElseIf material = "Aluminum" Then
density = 0.098
End If

In questo formato, il programma esegue le istruzioni associate con la prima espressione condizionale vera trovata. Quindi, il programma passa all'istruzione successiva all'istruzione End If. Utilizzare l'ultima istruzione Else per intercettare gli errori che si verificano quando vengono rilevate condizioni impreviste che non corrispondono a condizioni If o ElseIf precedenti.

L'utilizzo di ElseIf elimina la necessità di codificare più istruzioni End If in una struttura If nidificata. A scopo di confronto, l'esempio precedente può anche essere scritto nel modo seguente:

If material = "Steel" Then
density = 0.284
Else
If material = "Copper" Then
density = 0.323
Else
If material = "Aluminum" Then
density = 0.098
End If
End If
End If

Istruzione Select Case in iLogic

Select Case è un'istruzione particolarmente efficace con varie opzioni.

Ad esempio:

Select Case material
Case “Steel”
density =0.284
Case “ Copper”
density = 0.323
Case “Aluminum”
density = 0.098
Case Else
density = 0
MessageBox.Show("not a valid material" , "Warning")
End Select

In questo formato, l'istruzione Select Case consente di specificare un'espressione di prova. Ogni clausola Case successiva specifica una o più espressioni da confrontare con l'espressione di prova. Vengono eseguite le azioni associate alla prima clausola Case contenente un'espressione che soddisfa l'espressione di prova. Il controllo del programma si ramifica quindi nell'istruzione successiva all'istruzione End Select. L'ultima clausola Case Else intercetta gli errori che si verificano quando un valore non previsto dell'espressione di prova non corrisponde all'elenco di espressioni di nessuna delle clausole Case precedenti.

L'espressione di prova successiva a Select Case può essere un'espressione più complessa, ad esempio:

Select Case radius +1
Select Case  MinOfMany(x,y,z)

L'elenco di espressioni in una clausola Case può corrispondere ad uno dei seguenti formati:

Formato Esempi
<espressione> [, espressione,...] Case 1, 10, 100

Case "Y", "y"

<espressione> To <espressione> Case 1 To 9

Case "A" To "C"

Is <espressione operatore relazionale> Case >= 21
(libera combinazione dei valori precedenti) Case Is <= 5, 20 To 29, 43

Ad esempio:

Select Case width
Case 1,2,3,4,5
MessageBox.Show("Small Plate", "Size")
Case 6 to 15
MessageBox.Show("Medium Plate", "Size") 
Case Is > 15
MessageBox.Show("Large Plate", "Size")
End Select

L'istruzione Select Case non richiede un'associazione con un'espressione o variabile specifica. Può essere utilizzata per valutare qualsiasi numero di condizioni, utilizzando il seguente formato:

Select Case True
Case length >= 10
width = length -1
thickness = length/5
Case length < 10
width = length - .75
thickness = length/6
End Select