Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Reid G.C.Thinking in PostScript.1990.pdf
Скачиваний:
17
Добавлен:
23.08.2013
Размер:
846.44 Кб
Скачать

Chapter 7

Building Conditional Statements

A conditional is what most people call an if statement. It provides a mechanism for executing one piece of code or another based on a condition that is evaluated while the program is running. In the PostScript language, there are two operators for building conditional statements: if and ifelse. The only difference between them is that the if statement has only one clause and the ifelse statement has two. There is no built-in case statement in the PostScript language, but in this chapter we will discuss how to fabricate one.

Conditionals are the most fundamental and most useful construction in any programming language. A conditional belongs to a family of notions known as control structures, which are program mechanisms for letting you execute different parts of a program discontinuously, rather than having the whole program be one long piece of string. Other control structures are while loops, case statements, goto instructions, and subroutines. The ability to branch to a different part of your program when certain conditions are met is absolutely crucial to any moderately

79

complex program. You should learn inside and out how if and ifelse work in the PostScript language.

SIMPLE CONDITIONALS

The simplest way to build a conditional statement in your program is to use the template technique, as in Example 7.1.

Example 7.1: Constructing a Conditional

% the conditional expression comes first myvariable 3 gt { %ifelse

}{ %else

} ifelse

This creates an empty conditional statement with the conditional expression in place. The if and else clauses can then be filled in after the template is in place as shown in Example 7.2. (For more information, refer back to Setting up Templates in Chapter 3.)

Example 7.2: Filling in the Conditional Template

/myvariable 0 def myvariable 3 gt { %ifelse

(my variable got to 3; resetting to 0) == flush /myvariable 0 store

}{ %else

/myvariable myvariable 1 add store (my variable is now ) print myvariable == flush

} ifelse

A standard way of thinking about a conditional statement is to state the expression out loud, and to imagine first the true clause, then the false clause. That is the way the ifelse statement is laid out in the PostScript language. You have to remember that the ifelse operator itself goes at the end of the construction (as in the examples given). But you can still think of the conditional in much the same way you think in any other programming language (Example 7.3).

80

Chapter 7: BUILDING CONDITIONAL STATEMENTS