###### Descriptions and Examples for the POV-Ray Raytracerby Friedrich A. Lohmüller     Conditional Statements -
Deutsch

Home
- POV-Ray Tutorial

- Conditional
Statements

Branching
#if(...)... #else ... #end
- in loops
- in macros
- in animations
- turning on/off of parts
#switch(...) #case .. #end
- selection by tables

Check for Existence
#ifdef(...) #ifndef(...)
- Check in include files

Loops
Prechecked, Postchecked,
Count-controlled, Early-Exit
#while(...)... #end
#for(...)... #end
- Examples:
- Loops with POV-Ray
- Loops, Sine, Cosine
- Random with POV-Ray

## Conditional Statements for Loops

In the scenery description language (SDL) of POV-Ray there is a loop structure, which allow us to realizise all loop types known from programming languages:

 Realization in POV-Ray Types of Loops OtherProgramming Languages ```#while (condition) ... statements #end ``` Prechecked Loop "While Loop" WHILE (condition) DO   statements END JavaScript: ```while (condition) { (action); } ``` ``` ... statement1 #while (Inverted condition) ... statements #end ``` Postchecked Loop "Repeat Loop" REPEAT   statements UNTIL (condition) END JavaScript: "do-while" ```do { (action); } while (condition); ``` With #for loop:(since POV-Ray 3.7 beta37) ```#for (Variable, Start, End[, Step]) // step optional, default = 1 ... statements #end ``` With #while loop: ```#local Nr = start value; #local NrEnd = end value; #local Step = stepsize; #while (Nr < NrEnd +Step) ... statements #local Nr = Nr + Step; #end ``` Count-controlled loop "For Loop" FOR (variable)=(start value) TO (end value) STEP stepsize DO   statements NEXT JavaScript: ```for (init; test; continue) (action); ``` With #for loop:(since POV-Ray 3.7 beta37) ```#for (Identifier, Start, End[, Step]) // step optional, default = 1 #if(condition) #break // terminate loop early #end ... statements #end ```With #while loop: ```#local Identifier = start value; #local End = end value; #local Step = stepsize; #while (Identifier < End +Step) ... statements   #if (condition)   #local Identifier = NrEnd   #end #local Identifier = Identifier + Step; #end ``` Early exit from a for loop "Early Exit Loop" FOR (variable)=(start value) TO (end value) STEP stepsize DO   statements   IF ( condition)   variable : = end value ;   END IF NEXT JavaScript: ```while (condition) { if (condition) break; (action); } ```

Note: While using float numbers for the conditions you should be aware of the fact that extremely small values of about 1e-10 are considered zero in case of round off errors.
top

 © Friedrich A. Lohmüller, 2010 homepage:http://www.f-lohmueller.de