Přidání znalosti

Podmíněné příkazy

    Obsah
    No headers

    Pro vytváření pravidel modulu iLogic se používá programovací jazyk Visual Basic (VB.NET). Podmíněné příkazy If-Then-Else umožňují, aby pravidla prováděla akce na základě určitých kritérií.

    Jak příkaz If-Then-Else funguje?

    V příkazu If-Then-Else jeden soubor akcí kontroluje, zda je podmínka pravdivá a druhý soubor akcí kontroluje, zda je podmínka nepravdivá.

    (1) Podmínka (2) Pravdivá (3) Nepravdivá (4) Jestliže je podmínka pravdivá, proveďte tyto příkazy (5) Jestliže je podmínka nepravdivá, proveďte tyto příkazy

    Po provedení příkazů pro pravdivou nebo nepravdivou podmínku pokračuje programové řízení dalším příkazem.

    V modulu iLogic lze pro zavedení struktury If-Then-Else použít blokový nebo víceřádkový formulář.

    Například:

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

    Jestliže je podmíněný výraz pravdivý, jsou provedeny příkazy mezi klíčovými slovy ThenElse. Příkazy mezi klíčovými slovy ElseEnd If jsou vynechány. Jestliže je podmíněný výraz false, jsou provedeny příkazy mezi klíčovými slovy ElseEnd If. Příkazy mezi klíčovými slovy ThenElse jsou vynechány. V každém případě programové řízení pokračuje příkazem následujícím za příkazem End If.

    Jak příkaz If-Then funguje?

    V příkazu If-Then-Else je akce provedena bez ohledu, zda je podmínka true nebo false. Někdy však lze akci nebo soubor akcí provést pouze, když je podmínka true, ale nelze provést žádnou akci, když je podmínka false:

    (1) Podmínka (2) Pravdivá (3) Jestliže je podmínka pravdivá, proveďte tyto příkazy (4) Nepravdivá

    Můžete vynechat část Else blokové If struktury. Například:

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

    Jak používat nulové nebo prázdné soubory akcí?

    Lze použít také soubory akcí null nebo empty v blokovém formuláři příkazu If. Například lze stanovit „jestliže je podmínka pravdivá, neprovést nic – jinak něco provést” jako v následujícím bloku:

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

    Při použití prázdného souboru akcí zlepšete čitelnost zahrnutím poznámky tam, kde jsou obvykle příkazy true:

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

    Jak použít příkaz If jako jednořádkový příkaz?

    Ačkoliv blokový formulář příkazu If zlepšuje čitelnost, lze také příkaz If zapsat na jeden řádek. V tomto formátu se nepoužívá příkaz End If.

    Příklady obsahují:

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

    Jak používat booleovské proměnné v podmíněných výrazech?

    Booleovskou proměnnou, která může mít hodnotu True nebo False, lze použít kdekoliv, kde lze použít relační výraz.

    Například následující dva příkazy jsou stejné:

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

    V druhém příkazu je zahrnuta hodnota True.

    Podobně lze následující dva příkazy zaměnitelně použít ke kontrole, zda je booleovská proměnná nepravdivá:

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

    Tyto příklady uvádějí výsledek funkce. V ostatních příkladech je použit název parametru jako booleovské proměnné nebo lokální proměnné pro uložení booleovské hodnoty.

    Co je to struktura případu?

    Struktura případu umožňuje volbu mezi více než dvěma alternativami:

    (1) Případ kódu posuvu (2) Případ „1“ (3) Případ „2 (4) Případ „3“ (5) Případ „Jinak“ (6) Co dělat, když kód posuvu=„1“ (7) Co dělat, když kód posuvu=„2“ (8) Co dělat, když kód posuvu=„3“ (9) Co dělat, když kód posuvu není „1“, „2“ nebo „3“

    Strukturu případu lze zavést pomocí struktury rozšířeného bloku If nebo struktury příkazu Select Case.

    Co je to příkaz If (If-Then-ElseIf) rozšířeného bloku?

    Příkaz rozšířeného bloku If používá jednu nebo více klauzulí ElseIf, které jsou vnořeny mezi první klauzuli If a poslední klauzuli Else. Klíčové slovo ElseIf je jedno slovo.

    Například:

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

    V tomto formátu program provádí příkazy spojené s prvním nalezeným pravdivým podmíněným výrazem. Pak program pokračuje k příkazu následujícím za příkazem End If. Poslední příkaz Else použijte k shromáždění chyb, které se objevují při výskytu neočekávaných podmínek, které se neshodují s předchozími podmínkami If nebo ElseIf.

    Použití ElseIf eliminuje potřebu kódování vícenásobných příkazů End If ve vnořené struktuře If. Pro srovnání, předchozí příklad lze také zapsat jako:

    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

    Jak lze použít příkaz Zvolit případ?

    Select Case je výkonný příkaz s několika možnostmi.

    Například:

    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

    V tomto formátu příkaz Select Case určuje výraz k testu. Každá následná klauzule Case určuje jeden nebo více výrazů za účelem srovnání s testovacím výrazem. První klauzule Case obsahující výraz, který se shoduje s testovacím výrazem má své přiřazené akce provedeny. Programové řízení pak pokračuje s příkazem následujícím za příkazem End Select. Konečná klauzule Case Else shromažďuje chyby, které se objevují, když neočekávaná hodnota testovacího výrazu nesouhlasí se seznamem výrazů v kterékoliv z předchozích klauzulí Case.

    Testovací výraz následující za Select Case může být složitější výraz, například:

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

    Seznam výrazů v klauzuli Case může mít kterýkoliv z následujících formátů:

    Formát Příklady
    <výraz>[,výraz,...] Case 1, 10, 100

    Case “Y”, “y”

    <výraz> k <výraz> Case 1 To 9

    Case “A” To “C”

    Je<výraz relačního operátoru> Case Is >= 21
    (kombinace kterýchkoliv výše uvedených formátů) Case Is <= 5, 20 To 29, 43

    Například:

    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

    Příkaz Select Case nevyžaduje spojení s jednou konkrétní proměnnou nebo výrazem. Může být používán k vyhodnocení jakéhokoliv počtu podmínek pomocí následujícího formátu:

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

    Postupy

    Podmíněné příkazy

    Provedení alternativních akcí pro pravdivé a nepravdivé podmínky

    1. Umístěte kurzor na požadované místo v oblasti textu pravidla v dialogu Upravit pravidlo.
    2. Zvolte příkaz If...Then...EndIf z rozevírací nabídky na panelu nástrojů.
    3. Nahraďte Můj_výraz prvním výrazem k vyhodnocení.
    4. Zadejte k provedení akci, jestliže je podmínka pravdivá, na řádku mezi příkazem If-Then a příkazem EndIf.
    5. Nechejte kurzor na konci akce, kterou jste právě zadali a zvolte příkaz Else z rozevíracího seznamu.
    6. Zadejte k provedení akci, jestliže je podmínka pravdivá, na řádku mezi příkazem Else a příkazem EndIf.

    Když zadáte akce k provedení, můžete použít možnosti v oblasti Fragmenty pro vložení funkce na místě kurzoru. Pak můžete přidat příslušné argumenty pro tuto funkci.

    PoznámkaTaké můžete ručně zadat jakýkoliv text popsaný v těchto krocích; avšak, použití rozevíracích seznamů a fragmentů může eliminovat chyby.

    Proveďte akci pouze, jestliže je pravdivá jedna podmínka

    1. Umístěte kurzor na požadované místo v oblasti textu pravidla v dialogu Upravit pravidlo.
    2. Zvolte příkaz If...Then...EndIf z rozevírací nabídky na panelu nástrojů.
    3. Nahraďte Můj_výraz výrazem k vyhodnocení.
    4. Zadejte k provedení akci, jestliže je podmínka pravdivá, na řádku mezi příkazem If-Then a příkazem EndIf.

    Když zadáte akci k provedení, použijte možnosti v oblasti Fragmenty pro vložení funkce na místě kurzoru. Pak můžete přidat příslušné argumenty pro tuto funkci.

    PoznámkaTaké můžete ručně zadat jakýkoliv text popsaný v těchto krocích; avšak, použití rozevíracích seznamů a fragmentů může eliminovat chyby.

    Neprovádějte žádnou akci pro žádnou podmínku

    1. Umístěte kurzor na požadované místo v oblasti textu pravidla v dialogu Upravit pravidlo.
    2. Zvolte příkaz If...Then...EndIf z rozevírací nabídky na panelu nástrojů.
    3. Umístěte kurzor mezi dva vložené řádky a zvolte příkaz Else z rozevíracího seznamu.
    4. Nahraďte Můj_výraz výrazem k vyhodnocení.
    5. <doporučeno> Vložte poznámku, například ‘nedělat nic, pro nahrazení toho, co by v příkazu normálně bylo akcí.
      • Vložte poznámku na konci příkazu If-Then, aby nebyla provedena žádná akce, jestliže je podmínka pravdivá.
      • Vložte poznámku za příkaz Else, aby nebyla provedena žádná akce, jestliže je podmínka nepravdivá.
    6. Zadejte k provedení akci pro pravdivou nebo nepravdivou podmínku v závislosti na tom, která podmínka má akci obsahovat.

    Když zadáte akci k provedení, použijte možnosti v oblasti Fragmenty pro vložení funkce na místě kurzoru. Pak můžete přidat příslušné argumenty pro tuto funkci.

    PoznámkaTaké můžete ručně zadat jakýkoliv text popsaný v těchto krocích; avšak, použití rozevíracích seznamů a fragmentů může eliminovat chyby.

    Proveďte alternativní akce pro více než dvě podmínky.

    1. Umístěte kurzor na požadované místo v oblasti textu pravidla v dialogu Upravit pravidlo.
    2. Zvolte příkaz If...Then...EndIf z rozevírací nabídky na panelu nástrojů.
    3. Nahraďte Můj_výraz prvním výrazem k vyhodnocení.
    4. Zadejte k provedení akci pro podmínku mezi dvěma řádky.
    5. S kurzorem na konci akce, kterou jste právě zadali, zvolte ElseIf...Then z rozevíracího seznamu a nahraďte Můj_výraz dalším výrazem k vyhodnocení.
    6. Zadejte k provedení akci pro tuto podmínku na prázdném řádku pod podmínkou.
    7. Opakováním předchozích dvou kroků kolikrát to bude nutné přizpůsobte zbývající podmínky.

    Když zadáte akce k provedení, použijte možnosti v oblasti Fragmenty pro vložení funkce na místě kurzoru. Pak můžete přidat příslušné argumenty pro tuto funkci.

    PoznámkaTaké můžete ručně zadat jakýkoliv text popsaný v těchto krocích; avšak, použití rozevíracích seznamů a fragmentů může eliminovat chyby.

    Proveďte alternativní akce na základě srovnání se zkušebním případem

    Select Case <test expression>Case <expression list 1><statement list 1>Case <expression list 2><statement list 2>Case Else<statement list n>End Select
    1. Umístěte kurzor na požadované místo v oblasti textu pravidla v dialogu Upravit pravidlo.
    2. Zvolte Zvolit případ z rozevíracího seznamu Klíčová slova na panelu nástrojů.
    3. Přidejte mezeru na konci příkazu, který jste vložili a pak zadejte testovací výraz.
    4. Stiskněte Enter a zvolte Případ z rozevíracího seznamu Klíčová slova na panelu nástrojů.
    5. Přidejte mezeru na konci příkazu, který jste vložili a pak zadejte první výraz pro srovnání s testovacím výrazem.
    6. Zadejte k provedení akci pro tuto podmínku na prázdném řádku pod výrazem.
    7. Opakováním předchozích dvou kroků kolikrát to bude nutné přizpůsobte každý výraz.
    8. Umístěte kurzor na prázdný řádek pod poslední výraz a zvolte Případ jinak z nabídky Klíčová slova.
    9. Na prázdný řádek pod příkazem, který jste zadali, vložte klauzuli konečného případu pro shromažďování neočekávaných výsledků a stiskněte Enter.
    10. Umístěte kurzor na prázdný řádek pod poslední výraz a zvolte Ukončit volbu z nabídky Klíčová slova.

    Když zadáte akce k provedení, použijte možnosti v oblasti Fragmenty pro vložení funkce na místě kurzoru. Pak můžete přidat příslušné argumenty pro tuto funkci.

    PoznámkaTaké můžete ručně zadat jakýkoliv text popsaný v těchto krocích; avšak, použití rozevíracích seznamů a fragmentů může eliminovat chyby.

    Reference

    Podmíněné příkazy

    formát If-Then-Else

    If <conditional expression> Then<one or more statements to be executed if condition is true>Else<one or more statements to be executed if condition is false>End If

    formát If-Then

    If <conditional expression> Then<one or more statements to be executed if condition is true>End If

    nulový formát

    If <conditional expression> Then ‘do nothingElse <one or more statements to be executed if condition is false>End If

    příkaz If jako jednořádkový

    If <conditional expression> Then <true statement> [Else <false statement>]

    formát If (If-Then-ElseIf) rozšířeného bloku

    If <conditional expression 1> Then<one or more statements to be executed if condition 1 is true>ElseIf <conditional expression 2> Then<one or more statements to be executed if condition 2 is true>...
    ElseIf <conditional expression n> Then
    <one or more statements to be executed if condition n is true>
    Else
    <one or more statements to be executed if none of the above conditions is true>
    End If

    formát Zvolit případ

    Select Case <test expression>Case <expression list 1><statement list 1>Case <expression list 2><statement list 2>Case Else<statement list n>End Select