Vorlage Dokumentation#if
Allgemeines
   Aufruf
   Einleitung
   Installation
   Konfiguration
   Syntax
Einführung
   MetabefehlsAusdruecke
   MetabefehlsSyntax
   RegulaereAusdruecke
   VordefinierteVariablen
Funktionen
   abs()
   after()
   and()
   antoi()
   before()
   ceil()
   change()
   close()
   crop()
   equals()
   exp()
   flatten()
   float()
   floor()
   int()
   isnothing()
   itoan()
   length()
   log()
   log10()
   match()
   not()
   open()
   or()
   random()
   read()
   readline()
   sign()
   status()
   statustext()
   substr()
   system()
   time()
   tolower()
   toupper()
   typeof()
   write()
   writeline()
   xname()
   xor()
Metabefehle
   #after
   #array
   #break
   #call
   #config
   #const
   #debug
   #default
   #dict
   #else
   #every
   #forever
   #func
   #if
   #ifregion
   #ifunit
   #include
   #input
   #message
   #next
   #notrace
   #proc
   #return
   #sort
   #table
   #tag
   #trace
   #var
   #while
Rückruf-Prozeduren
   CalcUnitCapacities
   CreateRegionHeader
   CreateUnitHeader
   EndRegion
   EndUnit
   OnBuilding
   OnExit
   OnInit
   OnRegion
   OnShip
   OnUnit
   OutputLineFilter
Report-Objekte
   building
   grenze
   partei
   preise
   races
   region
   report
   ship
   things
   unit
Anhang
   Danksagungen
   SkriptDebugger
   VorlageFAQ

#if

Bedingte Ausführung von Befehlen

Syntax

#if <Bedingung> { Befehl1 [: ...] } [#else { Befehl2 [: ...] }]

Beschreibung

Dieser Metabefehl ermöglicht es, in Abhängigkeit von einer Bedingung einen Befehlsblock auszuführen oder nicht. Bedingung ist dabei ein Ausdruck der ausgewertet und gegen null verglichen wird. Ist er ungleich null, so wird der direkt auf die Bedingung folgende Block ausgeführt, anderenfalls der einem #else folgende Block, oder wenn dieser nicht existiert nach dem #if in der Ausführung fortgefahren.

Parameter

 Bedingung  Ein Ausdruck der ausgewertet wird und dessen Wert ungleich 0 sein muß damit der Teil im ersten Klammerblock ausgeführt wird. Andernfalls wird nach dem #if oder im Klammerblock des #else fortgefahren.

Beispiel

Eine Holzfällereinheit soll solange der Baumbestand größer als 650 Bäume ist so viel fällen wie sie kann, sonst weiter lernen:

EINHEIT f00; Die Holzer [5,150$] hinten
  // #if region.baeume>650 { MACHE Holz } #else { LERNE Holzfaellen }
  ; Für die laufende Runde einfach mal von Hand lernen lassen
  LERNE Holzfaellen

(Das ist natürlich ein eher schlichtes Holzfällerprogramm, das man zwar benutzen, aber auch verfeinern kann. Ein etwas besseres Beispiel ist auch unter #call zu finden.)

Referenzen

#ifregion, #ifunit

Revision 13 May 2003

Page design, graphics and contents (c) copyright 1999-2004
by S.Schümann and contributing authors