繰り返し - WHILE

繰り返しは「WHILE文」とも呼ばれ、下記の形で記述されます。

WHILE [(条件式)] DO(識別番号)
 ︙
END(識別番号)
				
条件式が成立すれば「︙」の部分の処理を行い、「END」のブロックまで来ると対応する識別番号の「DO」のブロックまで戻ります。条件式が成立しなければ、対応する「END」があるブロックの次のブロックに進みます。

・
・
#101 = 1
WHILE [#101 GE 0] DO 1(条件式が成立すれば次のブロックへ、成立しなければEND 1の次へ)
 (処理)
 #100 = #101 - 1
END 1        (DO 1へ)
・
・
				

※「WHILE」と「END」の間のブロックの頭にスペースを入れていますが、実際にはスペースは必要ありません。


重ねて使う

識別番号は1〜3まで使用することができ、識別番号を変えることにより下記のように重ねて使用することもできます。最大で3重まで重ねることができ、うまく使えるようになるとプログラムを大幅に短くすることもできます。

・
・
#101 = 2
#102 = 1
#103 = 1
WHILE [#101 GE 0] DO 1(条件式が成立すれば次のブロックへ、成立しなければEND 1の次へ)
 WHILE [#102 GE 0] DO 2(条件式が成立すれば次のブロックへ、成立しなければEND 2の次へ)
  WHILE [#103 GE 0] DO 3(条件式が成立すれば次のブロックへ、成立しなければEND 3の次へ)
   (処理)
   #103 = #103 - 1
  END 3        (DO 3へ)
  #103 = 1
  #102 = #102 - 1
 END 2        (DO 2へ)
 #102 = 1
 #101 = #101 - 1
END 1        (DO 1へ)
・
・
				

同じ識別番号を使う

一度ループから抜けだしていれば、同じ識別番号を使用することもできます。

WHILE [#100 GE 0] DO 1
(処理)
END 1

WHILE [#101 GE 0] DO 1
(処理)
END 1
				

交差させることはできない

上述したように重ねることは可能ですが、下記のように交差させることはできません。

(アラームで止まる)
WHILE [#100 GE 0] DO 1
 WHILE [#101 GE 0] DO 2
 (処理)
END 1
 END 2
				

GOTO文との組み合わせ

GOTO文でループから抜け出すことはできますが、GOTO文でループ内に入ることはできません。

WHILE [#100 GE 0] DO 1
  ︙
 GOTO 20    (ループから抜け出せる)
  ︙
END 1

N20
				
GOTO 20		 (ループの途中には入れない)
 ︙
WHILE [#100 GE 0] DO 1
  ︙
 N20
  ︙
END 1
				

お知らせ

当サイトのPDF版を作成しました。教育資料やリファレンスとして使用して頂ければと思います。

→ NCプログラムの教科書

上級編も作成しました。

→ NCプログラム上級編
メニュー
サブメニュー
NC旋盤
OSP(オークマ)
雑学
NCプログラマの為の数学
関連サイト