Lauseet

GOTO

GOTO lausekkeella voidaan ohjelmassa hypätä määriteltyyn rivinumeroon.
 
GOTO 10 Hypätään riviin N10

Jos ohjelmassa on useita rivejä samalla numerolla, GOTO lause hyppää parametreista riippuen johonkin riviin. Yleisenä käytäntönä voidaankin pitää että kaikki rivinumerot ovat uniikkeja.

GOTO lauseen suorittaminen ei ole välitön. GOTO lausekkeita onkin syytä välttää viimeistelyssä, sillä viive voi aiheuttaa työkalun pysähtymisen. Hyppääminen ohjelmassa taaksepäin aiheuttaa suuremman viiveen kuin hyppääminen eteenpäin.

 

IF..GOTO, IF..THEN

IF lauseke on ehdollinen lauseke. IF lauseketta seuraa vertailulauseke [ ] suluissa, jossa verrataan vertailuoperaattorilla kahta arvoa, jotka voivat olla numeroita, muuttujia, aritmeettisia operaatioita tai makrolausekkeita.
 
Operaattori Nimi Kuvaus
EQ Equal Yhtäsuuri kuin (=)
NE Not Equal Erisuuri (≠)
GT Greater Than Suurempi (>)
GE Greater than or Equal Suurempi tai yhtäsuuri (≥)
LT Less Than Pienempi (<)
LE Less than or Equal Pienempi tai yhtäsuuri (≤)

Jos vertailun tulos on tosi, toteutetaan seuraava THEN tai GOTO lause. GOTO lause toimii kuten GOTO. THEN lauseen perässä voi olla vain yksi käsky joka toteutetaan. Esim. #1=5.0 on yksi käsky, G00 X5.0 on kaksi käskyä, joka THEN lauseen jälkeen aiheuttaa virheilmoituksen. Jos vertailun tulos on epätosi, siirrytään seuraavalle riville suorittamatta THEN tai GOTO lauseketta.

IF[#1 EQ 2] THEN #100=#100+1


Jos muuttuja #1 on yhtäsuuri kuin 2, lisätään muuttujaan #100 1
IF[[#1/[#7+3]] LT [#100*SIN[#101+30]]] GOTO 75

Jos #1 ÷ (#7 + 3) on vähemmän kuin #100 × sin(#101+30), hypätään riville N75


Koska laskennan tarkkuus on rajallinen, joissain tapauksissa käytettäessä vertailua EQ (yhtäsuuri) voi johtaa ongelmiin. Jos muuttujille #1 ja #2 suoritetaan operaatioita jotka johtavat etenkin irrationaalilukuihin, voi tulla tilanne jossa IF[#1 EQ #2] ei toteudu koskaan. Tällöin voidaan määritellä luvulle tarkkuus, jonka sisällä käytännöllisesti katsoen verrattavat arvot ovat yhtäsuuret.
 

IF[ABS[#1-#2] LT 0.01]

Verrataan muuttujaa #1 ja #2. Jos muuttujien erotus on alle 0.01mm, tulkitaan muuttujien olevan sadasosamillimetrin tarkkuudella sama.

 

WHILE..DO..END

WHILE on ehdollinen lauseke. WHILE lauseketta seuraa vertailulauseke kuten IF lausekkeessakin. Jos vertailulauseke on tosi, suoritetaan DO..END lauseiden sisällä oleva silmukka (loop). Muuten hypätään suoraan END lauseen jälkeiselle riville. DO ja END lauseisiin lisätään silmukkanumero 1, 2 tai 3.

WHILE[#100 LT 50.0] DO 1
:
END 1

Jos muuttuja #100 on pienempi kuin 50.0, suoritetaan simukka joka on DO 1 ja END 1 lauseiden välissä.

WHILE..DO..END voi olla nopeampi tapa suorittaa ohjelmaa kuin IF..GOTO, etenkin jos joudutaan hyppäämään taaksepäin. DO..END ilman WHILE ehtolauseketta luo loputtoman silmukan. Silmukkanumeroita voi käyttää kuinka monta kertaa tahansa. Silmukat eivät saa olla limittäin, mutta ne voivat olla sisäkkäin. Silmukoista voi hypätä pois, mutta silmukoihin hyppääminen ei ole sallittu.