iLogic에서는 규칙 편집 대화상자에서 사용할 수 있는 조건문을 제공합니다.
모형에 대해 정의한 규칙(간단한 Visual Basic 프로그램)에 문을치할 수 있습니다. If-Then-Else 등의 조건문을 사용하면 규칙을 통해 특정 조건에 맞는 작업을 수행할 수 있습니다.
If-Then-Else 문에서는 조건이 true일 경우 한 작업 세트가 실행되고 조건이 false일 경우 다른 작업 세트가 실행됩니다.
true 또는 false 문이 실행되면 다음 문과 함께 프로그램 컨트롤이 다시 시작됩니다.
iLogic에서는 블록 또는 여러 줄로 된 형식을 사용하여 If-Then-Else 구조를 구현할 수 있습니다.
예를 들면, 다음과 같습니다.
If size = “small” Then length = 6.0 Else length = 12 End If
조건식이 true일 경우 키워드 Then과 Else 사이의 문이 실행됩니다. 키워드 Else 및 End If 사이의 문은 무시됩니다. 조건식이 false이면 키워드 Else 및 End if 사이의 문이 실행됩니다. 키워드 Then과 Else 사이의 문은 무시됩니다. 어떤 경우에도 프로그램 컨트롤은 다음 End If 문과 함께 다시 시작됩니다.
If-Then-Else 문에서는 조건이 true이든지 false이든지에 상관없이 작업이 실행됩니다. 그러나 조건이 true인 경우에만 작업 또는 작업 세트를 수행하고 조건이 false인 경우에는 수행하지 않는 경우가 있습니다.
블록 If 구조의 Else 부분을 생략할 수 있습니다. 예를 들면, 다음과 같습니다.
If size = “small” Then length = 6.0 End If
If 문의 블록 형식에서 작업의 null 또는 empty 세트를 사용할 수도 있습니다. 예를 들어 다음 블록에서와 같이 "if a condition is true, do nothing - else, do something"이라고 지정할 수 있습니다.
If length > 20 Then Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title") End If
작업의 empty 세트를 사용할 경우 일반적인 true 문의 위치에 주석을 포함하여 알아보기 쉽게 만들 수 있습니다.
If length > 20 Then ’do nothing Else MessageBox.Show(" Invalid Size.Length must be at least 20 in ", "Title") End If
블록 형식의 If 문이 알아보기 쉽지만 If 문을 단일 행으로도 쓸 수 있습니다. 이 형식에서 End If 문은 사용되지 않습니다.
다음과 같은 예를 들 수 있습니다.
If length < 20 Then MessageBox.Show("Length is Too Short", "Title") If mass < 1000 Then length =20 Else length =40
True 또는 False 값을 가질 수 있는 부울 변수는 관계식을 사용할 수 있는 곳에는 어디에나 사용할 수 있습니다.
예를 들어 다음 두 문은 동일합니다.
If Feature.IsActive("Fillet1") = true Then . . . If Feature.IsActive("Fillet1") Then . . .
두 번째 문에서는 True 값을 나타냅니다.
마찬가지로, 다음 두 문을 바꿔서 부울 변수가 false인지 테스트할 수 있습니다.
If Feature.IsActive("Fillet1") = false Then . . . If Not Feature.IsActive("Fillet1") Then . . .
이 예제에서는 함수 결과를 보여 줍니다. 다른 예제로는 매개변수 이름을 부울 변수로 사용하거나 로컬 변수를 사용하여 부울 값을 포함하는 경우 등이 있습니다.
Case 구조를 사용하면 3개 이상의 대안 중에서 선택할 수 있습니다.
Case 구조는 확장 블록인 If 구조 또는 Select Case 문 구조를 사용하여 구현할 수 있습니다.
확장 블록 If 문에는 첫 번째 If 절과 마지막 Else 절 사이에 포함되는 하나 이상의 ElseIf 절이 사용됩니다. 키워드 ElseIf는 한 단어입니다.
예를 들면, 다음과 같습니다.
If material = "Steel" Then density = 0.284 ElseIf material = "Copper" Then density = 0.323 ElseIf material = "Aluminum" Then density = 0.098 End If
프로그램에서는 발견된 첫 번째 true 조건식과 연관된 문이 이 형식으로 실행됩니다. 그런 다음 이 문 다음에 End If 문이 옵니다. 마지막 Else 문을 사용하면, 이전 If 또는 ElseIf 조건과 일치하지 않는 예상치 못한 조건이 발생할 경우 나타나는 오류를 방지할 수 있습니다.
ElseIf를 사용하면 여러 개의 End If 문을 중첩된 If 구조에 코딩하지 않아도 됩니다. 비교 목적이라면 앞의 예제를 다음과 같이 쓸 수도 있습니다.
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
Select Case는 여러 가지 옵션이 있는 강력한 문입니다.
예를 들면, 다음과 같습니다.
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
이 형식에서 Select Case 문은 테스트할 표현식을 지정합니다. 이후의 각 Case 절에 따라, 테스트 표현식과 비교할 하나 이상의 표현식이 지정됩니다. 테스트 표현식과 일치하는 표현식이 포함된 첫 번째 Case 절에는 실행되는 관련 작업이 있습니다. 그러면 프로그램 컨트롤이 End Select 문 다음의 문으로 나뉘어 계속됩니다. 마지막 Case Else 절은 테스트 표현식의 예상치 못한 값이 이전 Case 절의 표현식 리스트와 일치하지 않는 경우에 발생하는 오류를 방지합니다.
Select Case 다음의 테스트 표현식은 다음과 같이 더 복잡한 표현식일 수 있습니다.
Select Case radius +1 Select Case MinOfMany(x,y,z)
Case 절의 표현식 리스트는 다음 형식 중 하나를 따를 수 있습니다.
형식 | 예 |
---|---|
<표현식>[,표현식,...] |
Case 1, 10, 100
Case "Y", "y" |
<표현식> To <표현식> |
Case 1 To 9
Case "A" To "C" |
Is<연산자 표현식> | Case Is >= 21 |
(앞 형식의 조합) | Case Is <= 5, 20 To 29, 43 |
예를 들면, 다음과 같습니다.
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
Select Case 문은 한 특정 변수나 표현식과 연결될 필요가 없습니다. 이 문은 다음과 같은 형식으로 조건을 원하는 수만큼 평가하는 데 사용할 수 있습니다.
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select