다음을 통해 공유


If 식(Crystal 구문)

If 식은 가장 유용한 제어 구조 중 하나입니다. 이 식을 사용하면 조건이 true일 경우 식을 평가하고 조건이 true가 아닐 경우 다른 식을 평가합니다.

Note참고

조건부 수식으로 서식을 지정할 때는 항상 Else 키워드를 포함시키십시오. 그렇지 않으면 If 조건을 충족하지 않는 값이 원래의 서식을 잃을 수 있습니다. 이를 방지하려면 DefaultAttribute 함수(If...Else DefaultAttribute)를 사용하십시오.

예제

어떤 회사에서 영업부 직원에게는 6%의 상여금을 지급하고 나머지 직원들에게는 4%의 상여금을 지급하려고 합니다. If 식을 사용하는 다음 수식으로 이 작업을 합니다.

If {Employee.Dept} = "Sales" Then
{Employee.Salary} * 0.06
Else
{Employee.Salary} * 0.04

이 예에서 조건 {직원.부서} = "영업"이 true이면

{Employee.Salary} * 0.06

식이 처리됩니다. 그렇지 않으면 Else 다음에 있는

{Employee.Salary} * 0.04

식이 처리됩니다.

직원들에게 4%의 상여금(최소 $1,000 이상)을 지급하는 경우를 가정해 봅니다. Else 절은 사용되지 않습니다. 이 절은 선택적이며 이 경우에는 필요하지 않습니다.

Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
bonus := 1000;
//최종 식은 변수 'bonus'입니다.
//이 식은 수식의 결과로서 변수의 값을 반환합니다.
bonus

예 2를 수행하는 다른 방법은 Else 절을 사용하는 것입니다.

Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else
bonus

또한 이전 회사에서 상여금을 최대 $5,000까지 지급하는 경우를 가정해 봅니다. 이 경우에는 Else If 절을 사용해야 합니다. 다음 예에서는 하나의 Else If 절 하나만 사용되었으나 이 절은 필요한 만큼 추가할 수 있습니다. .

Note참고

If 식 당 Else 절을 최대 하나만 사용할 수 있습니다.

If 또는 ElseIf 조건이 모두 true가 아니면 Else 절이 실행됩니다.

Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else If bonus > 5000 Then
5000
Else
bonus;

예제

회사에서는 직원이 지불해야 하는 세금액의 추정값을 계산하고 그 결과에 따라 적절한 메시지를 작성하려고 합니다. 수입이 $8,000보다 적으면 세금을 내지 않고, 수입이 $8,000 ~ $20,000이면 수입의 20%를, 수입이 $20,000 ~ $35,000이면 수입의 29%를, 수입이 $35,000보다 많으면 수입의 40%를 세금으로 내야 합니다.

Local CurrencyVar tax := 0;
Local CurrencyVar income := {Employee.Salary};
Local StringVar message := "";
If income < 8000 Then
(
message := "no";
tax := 0
)
Else If income >= 8000 And income < 20000 Then
(
message := "lowest";
tax := (income - 8000)*0.20
)
Else If income >= 20000 And income < 35000 Then
(
message := "middle";
tax := (20000 - 8000)*0.20 + (income - 20000)*0.29
)
Else
(
message := "highest";
tax := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 +
(income - 35000)*0.40
);
//2자리 소수 자릿수를 사용하고 쉼표를 천 단위 구분 기호로 사용합니다.
Local StringVar taxStr := CStr (tax, 2, ",");
"You are in the " & message & " tax bracket. " & "Your estimated tax is " & taxStr & "."
Note참고

변수를 사용하면 계산 논리를 단순화할 수 있습니다. 또한 조건 중 하나를 만족할 때 실행되는 두 개의 식이 사용되고 있습니다. 즉, 식 하나는 세금 변수를 할당하고 다른 식은 메시지 변수를 할당합니다. 이것은 주로 조건의 결과로서 실행되는 다중 식이 있을 때 유용합니다.

이 섹션에 포함된 내용: