### 一般ステートメント

コマンド名 | 機　　能 | 備　考
--- | --- | ---
LET | 式の値を変数に代入します。 |
DEFINT | 変数の型（整数型）を宣言します。 |
DEFSNG | 変数の型（単精度型）を宣言します。 |
DEFDBL | 変数の型（倍精度型）を宣言します。 |
DEFSTR | 変数の型（文字型）を宣言します。 |
PRINT | 画面に情報を出力します。 |
APRINT | 画面に情報をスクロールせずに出力します。 | 新規追加
WRITE | 画面にデータを表示します。 |
INPUT | キーボードからデータを入力します。 |
LINPUT LINE INPUT | キーボードから文字を入力します。ブランク（空白）やカンマ（，）も入力できます。 |
CLEAR CLR | 変数および配列をすべてクリアします。 |
DIM | 配列変数を定義します。 |
ERASE | 配列変数を消去します。 | NewX1も対応
LABEL | プログラム中にラベルをつけます。 |
GOTO | 指定した行番号かラベルへ無条件にジャンプします。 |
GOSUB | BASICプログラム内のサブルーチンを呼び出します。 |
RETURN | GOSUBで呼ばれたサブルーチンの最後につけて戻りに使用します。 |
IF～THEN･･･ ELSE | 論理式を判断して次に進みます。 |
FOR～TO･･･ STEP | FORとNEXTとの間を繰返し実行します。 |
NEXT | FORの終端を示します。 |
REPEAT | REPEAT～UNTILの始めを示します。 |
UNTIL | REPEATとUNTILとの間を繰返し実行します。 |
WHILE | WHILEとWENDとの間を繰返し実行します。 |
WEND | WHILEの終端を示します。 |
ON～ | 式の値によって、いくつかの行へジャンプします。 |
STOP | プログラムの実行をストップします。 |
STOP ON STOP OFF | CTRL+C（ブレークキー）の許可、禁止を設定します | NewX1も対応
END | プログラムの実行の終了を宣言します。 |
SWAP | ２つの変数の値を交換します。 |
REM | プログラム文にコメントを入れます。 |
READ | DATA文で用意されたデータを変数に入れます。 |
DATA | READで読むデータを定義します。 |
RESTORE | READ文で読み始めるDATA文を指定します。 |
DEF FN | ユーザーが関数を定義するのに使います。 |
RANDOMIZE | RND関数で発生させる乱数の系列を設定します。 |
PUSH | データをユーザースタックに書き込みます。 | NewX1も対応
POP | ユーザースタックから順にデータを読み出します。 | NewX1も対応

### （説明の形式）

［機能］ | 各コマンド・ステートメント・関数の働きを簡潔に記述します。
［書式］ | 各コマンド・ステートメント・関数の書き方の一般形を示します。 ［　］の中は任意に省略できます。
［解説］ | 各コマンド・ステートメント・関数の実際の使用方法、働き、注意事項を詳しく述べています。

### LET

［機能］ | 式の値を変数に代入します。
［書式］ | ［LET］ 変数＝式 ［LET］ 変数＝定数 ［LET］ 変数＝変数
［解説］ | 式の演算結果を変数に代入します。左辺が数値定数のとき右辺は数値、左辺が文字列定数のとき 右辺は文字列というように、両辺のタイプは一致させなければなりません。 なお、LETは完全省略ステートメントなので、なくてもかまいません。

### DEFINT・DEFSNG・DEFDBL・DEFSTR

［機能］ | 変数の型を宣言します。
［書式］ | DEFINT 文字１［，文字２，･･･］ DEFINT 文字１［－文字２］ DEFSNG 文字１［，文字２，･･･］ DEFSNG 文字１［－文字２］ DEFDBL 文字１［，文字２，･･･］ DEFDBL 文字１［－文字２］ DEFSTR 文字１［，文字２，･･･］ DEFSTR 文字１［－文字２］
［解説］ | この４つのDEFは、変数の型を宣言し、型の識別記号をつけなくても、宣言した型の変数として 使うためのステートメントです。たとえば、Ａは単精度型変数ですが、DEFSTR Aと宣言すると、 文字型になり、A$とわざわざ＄をつけなくても文字列の代入ができます。 この４つの型宣言は、変数の頭１文字によって行いますので、この頭文字で始まる変数は、 型記号（％，！，＃，＄）がついていなければ、すべて宣言した型になります。 DEFINTは変数を整数型として、 DEFSNGは変数を単精度型として、 DEFDBLは変数を倍精度型として、 DEFSTRは変数を文字型として、 それぞれ定義します。 また、変数と変数の間を－（ハイフン）でつなぐと、その間に含まれるアルファベットはすべて、 宣言した型になります。なお、まったく宣言しなければすべて単精度型変数になります。

### PRINT

［機能］ | 画面に情報を出力します。
［書式］ | PRINT［a1］［；a2］［，a3］･･･ a1，a2，a3：式，変数，定数。
［解説］ | PRINTは，(カンマ)；(セミコロン)で区切られた式の値、文字列、変数、定数の値を画面に表示します。 PRINTのみのときは１行改行し、式、変数、定数の間や最後に；(セミコロン)をつければ、改行せずに 続けて表示することができます。 なお、？(クエスチョンマーク)をPRINTと同じステートメントとして使うことができます。 PRINTステートメント中で、表示位置をスキップするためにTAB、指定位置まで空白を表示するためにSPCがあります。 TAB（ｎ）は画面左端からｎ文字スキップするのに対し、SPC（ｎ）はそのままｎ文字分の空白を表示します。

### APRINTnew!

［機能］ | 画面に情報をスクロールせずに出力します。
［書式］ | APRINT［a1］［；a2］［，a3］･･･ a1，a2，a3：式，変数，定数。
［解説］ | APRINTは，(カンマ)；(セミコロン)で区切られた式の値、文字列、変数、定数の値を画面に表示します。 APRINTのみのときは１行改行し、式、変数、定数の間や最後に；(セミコロン)をつければ、改行せずに 続けて表示することができます。 PRINT命令と異なり、カーソルが最下行にある状態で出力した場合、画面はスクロールせずに、カーソルが最上行に移動します。 なお、A？(クエスチョンマーク)をAPRINTと同じステートメントとして使うことができます。

### WRITE

［機能］ | 画面にデータを表示します。
［書式］ | WRITE［a1］［；a2］［，a3］･･･ a1，a2，a3：式，変数，定数。
［解説］ | 画面に式の値を，(カンマ)で区切り、詰めて表示します。 文字型のときは”(ダブルクォーテーション)で囲んで表示します。

### INPUT

［機能］ | キーボードからデータを入力します。
［書式］ | INPUT ［”文字列”］；変数１［，変数２，･･･］ INPUT ［”文字列”］，変数１［，変数２，･･･］ 文字列：画面に表示する文字列。 変　数：キーボードから入力する変数。
［解説］ | キーボードから入力した数値や文字を変数に入れます。”(ダブルクォーテーション)で文字列を 囲むことによって、ステートメントの実行時に、その文字列を画面に表示し、キーボードからの入力を 待ちます。このとき、文字列と変数が；で区切られていると文字列の後ろに？(クエスチョンマーク) がつき、，で区切られていると？は表示しません。キーボードからデータを入力して、Enterキーを押すと そのデータを変数に入れます。 変数の型とキーボードから入力する変数の型は一致していなければなりません。複数個の変数を「，」で 区切って指定しているときには、その指定順に、対応するデータを「，」で区切って一度に入力します。 何も入力しないでEnterキーを押すと変数の値を保存して次のステートメントに進みます。

### LINPUT・LINE INPUT

［機能］ | キーボードから文字を入力します。ブランク（空白）やカンマ（，）も入力できます。
［書式］ | LINPUT ［”文字列”；］文字式 LINPUT ［”文字列”，］文字式 LINE INPUT ［”文字列”；］文字式 LINE INPUT ［”文字列”，］文字式 文字列：画面に表示する文字列。 文字式：キーボードから入力する文字変数。
［解説］ | キーボードから入力した文字列を文字式に入れます。このとき，(カンマ)や空白（スペース）も １文字として入力できます。INPUTと同様に、”(ダブルクォーテーション)で 囲った文字列を画面に表示できますが、LINPUTでは、これも同時に入力してしまいますので、 プログラム中で取り除く処理が必要です。なお、，と；のどちらを使っても同じ結果となります。

### CLEAR・CLR

［機能］ | 変数および配列をすべてクリアします。
［書式］ | CLEAR CLR
［解説］ | すべての変数および配列のうち数値型のものを０に、 文字型のものをヌルストリング（何も入っていない状態）にします。

### DIM

［機能］ | 配列変数を定義します。
［書式］ | DIM 配列名１（m1［，m2，･･･］），［配列名２（n1［，n2，･･･］）］･･･ 配列名：配列型変数名。 m1，m2，n1，n2：添字の上限。
［解説］ | 配列変数の名前とその添字の上限を設定します。１つのDIMで複数の配列変数を定義でき、 配列ごとに、メモリー範囲内で任意数の添字の指定ができます。 DIMの実行後、数値型配列には０が入り、文字型配列はヌルストリングになります。 配列添字の下限は０です。 DIMを実行せずに配列変数を使用しようとすると、Subscript out of rangeのエラーが出ます。

### ERASEnew!

［機能］ | 配列変数を消去します。
［書式］ | ERASE a1［，a2，･･･］ a1，a2：配列名。
［解説］ | ERASEは、指定した配列変数を消去するためのステートメントです。消去した配列変数はDIMで再び 宣言することができます。ERASEで消去せずに同じ配列変数を宣言しようとすると、 Duplicate Definitionのエラーが出ます。

### LABEL

［機能］ | プログラム中にラベルをつけます。
［書式］ | LABEL ”ラベル名”
［解説］ | プログラム中にラベルをつけます。このラベルは、GOTO， GOSUBなどのジャンプ先として 参照される目印で、これによってプログラムにドキュメント性をもたせることができます。 ラベル名の制限は特にありません。 プログラム中に同じラベルがある場合は最初に出てきたラベルが優先されます。

### GOTO・GO TO

［機能］ | 指定した行番号かラベルへ無条件にジャンプします。
［書式］ | GOTO 行番号 GOTO ”ラベル名” GO TO 行番号 GO TO ”ラベル名” 行番号：ジャンプ先の行番号。 ラベル名：LABELで定義された文字列。
［解説］ | GOTOとGO TOは同じ機能を持ち、指定した行番号かラベルへ、無条件にジャンプするもので、 プログラムの流れを変えるときに使用します。ラベルはLABELによって エントリーされた文字列です。

### GOSUB・GO SUB

［機能］ | BASICプログラム内のサブルーチンを呼び出します。
［書式］ | GOSUB 行番号 GOSUB ”ラベル名” GO SUB 行番号 GO SUB ”ラベル名” 行番号：サブルーチンの開始行番号。 ラベル名：LABELで定義された文字列。
［解説］ | メモリー中にあるBASICのサブルーチンを呼び出し、指定された行番号またはラベル名からRETURN までを実行させます。呼び出されるサブルーチンの最後には必ずRETURNがなければなりません。

### RETURN

［機能］ | GOSUBで呼ばれたサブルーチンの最後につけて戻りに使用します。
［書式］ | RETURN 行番号 RETURN ”ラベル名” 行番号：サブルーチンからの戻り先行番号。 ラベル名：LABELで定義された文字列。
［解説］ | RETURNはGOSUBで呼ばれたサブルーチンから戻り先へ戻すときに使用します。 行番号、ラベル名をつけると、その行へ戻りますが、省略するとGOSUB文の後ろに戻ります。

### IF～THEN･･･ELSE

［機能］ | 論理式を判断して次に進みます。
［書式］ | IF 論理式 THEN ※１ ［ELSE ※１］ IF 論理式 ［THEN］ GOTO ※２ ［ELSE ※１］ ※１：行番号，”ラベル名”，文のいずれか ※２：行番号，”ラベル名”のいずれか 行番号：ジャンプ先の行番号。 ラベル名：LABELで定義された文字列。 文：任意のステートメント。
［解説］ | 論理式が正しいかどうか判断して、指定の行番号やステートメントに制御を移して実行を続けます。 ELSE以降がある場合、論理式が正しければ、THENの後ろで指定された行番号・ラベルの行、または 文の実行に移り、まちがっていれば、ELSEの後ろで指定された行番号・ラベルの行、または文の実行 に移ります。 ELSE以降がない場合、論理式が正しければ、THENの後ろで指定された行番号・ラベルの行、または 文の実行に移り、まちがっていれば、次の行へ移ります。 THENとELSEの後ろの文として、IF文を使ってもかまいません。ただし、この場合は最後のIF文の ELSEのみ省略することができます。

### FOR～TO･･･STEP

［機能］ | FORとNEXTとの間を繰返し実行します。
［書式］ | FOR 変数名＝初期値 TO 終了値 ［STEP 増分］ 変数名：整数型変数、単精度型変数、倍精度型変数 初期値、終了値、増分：定数、変数、式。負の値でもよい。
［解説］ | FORはNEXTとともに用いられ、変数の値が終了値からはみ出すまでFORからNEXTへの実行を続け、 はみ出すとNEXTの次へ実行を移します。変数は初期値の値から始まって、この文が実行されるたびに 増分だけ加えられて行き、終了値をはみ出すと繰返しが終わります。なお、STEP増分を省略すると 増分は１になります。 対応するNEXTがない場合はFOR without NEXTエラーが出ます。変数の初期値が終了条件をすでに 満たしている場合は、そのままNEXTの次へ実行を移します。TOとSTEPの前には１文字分のスペースを あけてください。

### NEXT

［機能］ | FORの終端を示します。
［書式］ | NEXT ［変数名［，変数名，･･････］］
［解説］ | NEXTの変数名は、FORの変数名と１対１に対応していなければなりません。FORとNEXTの中にさらに 別のFORとNEXTを置くことができますが、これを入れ子の構造といい、入れ子は何重でもかまいません。

### REPEAT

［機能］ | REPEAT～UNTILの始めを示します。
［書式］ | REPEAT
［解説］ | REPEATは、UNTILと対にして使用し、ループの初めを示すのみです。 対応するUNTILがない場合はエラーになります。

### UNTIL

［機能］ | REPEATとUNTILとの間を繰返し実行します。
［書式］ | REPEAT ｜ UNTIL 論理式
［解説］ | このステートメントはREPEATループの端末で、論理式がまちがっていればREPEATへ戻り、 正しければ次の行へ通り抜けます。 なお、REPEATとUNTILの間にGOTO文を入れてループの外にジャンプさせることはできません。

### WHILE

［機能］ | WHILEとWENDとの間を繰返し実行します。
［書式］ | WHILE 論理式 ｜ WEND
［解説］ | WHILEはWENDとともに用いられ、論理式が正しければWHILEとWENDとの間の実行を続け、 まちがっているときWENDの次の文へジャンプします。注意するのは、論理式が最初で判断 されている点で、場合によっては、WHILEとWENDの中を一度も通らないで次にジャンプする こともあります。ここに、REPEAT～UNTILとの相違点があります。WHILEとWENDが正しく対応 していない場合エラーになります。なお、WHILE～WENDの間にGOTO文を入れてループの外に ジャンプさせることはできません。

### WEND

［機能］ | WHILEの終端を示します。
［書式］ | WEND
［解説］ | このステートメントはWHILEの終端として使用されるのみです。

### ON～

［機能］ | 式の値によって、いくつかの行へジャンプします。
［書式］ | ON 式 GOTO 行番号１［，行番号２，行番号３，･･････］ ON 式 GOSUB 行番号１［，行番号２，行番号３，･･････］ ON 式 RETURN 行番号１［，行番号２，行番号３，･･････］ ON 式 RESTORE 行番号１［，行番号２，行番号３，･･････］ ON 式 RESUME 行番号１［，行番号２，行番号３，･･････］ 行番号のかわりにラベル名も使えます。式の後ろには必ず空白を１つ以上置いてください。
［解説］ | 式の値（数値）がｉのとき、ｉ番目に指定した行番号の行にジャンプして、それ以降の行を実行します。 式の値が１ならば１番目の行番号、２ならば２番目、３ならば３番目、･･････というように対応しており、 式の値に対応する行番号がなければON文の次を実行します。なお式の値が整数でなければ、小数第１位で 四捨五入された値になります。

### STOP

［機能］ | プログラムの実行をストップします。
［書式］ | STOP
［解説］ | プログラム中にSTOPがあると、「Break in 行番号」を画面に表示し、止まります （行番号はSTOPのあった行を示しています）。プログラムの停止後にCONTを実行すると、 止まった次の文から実行を再開します。

### STOP ON／OFF

［機能］ | CTRL+C（ブレークキー）の許可、禁止を設定します
［書式］ | STOP ON STOP OFF
［解説］ | CTRL+C（ブレークキー）の機能を有効にしたり、無効にしたりします。 STOP ON ：CTRL+Cが押されると、プログラムの実行を停止します。起動時はこの状態です。 STOP OFF：CTRL+Cを押してもプログラムを停止することはできません。

### END

［機能］ | プログラムの実行の終了を宣言します。
［書式］ | END
［解説］ | このステートメントを実行するとプログラムは終了し、すべてのファイルを閉じて、画面上にはＯｋが 表示されて入力待ちとなります。

### SWAP

［機能］ | ２つの変数の値を交換します。
［書式］ | SWAP x1，x2 x1，x2：値を交換する変数。
［解説］ | x1の値をx2に、x2の値をx1に入れて、値の交換を行います。変数は数値、文字型いずれでもかまいませんが、 ２つの変数の型は一致していなければなりません。

### REM

［機能］ | プログラム文にコメントを入れます。
［書式］ | REM ［コメント］ コメント：任意の文字列
［解説］ | プログラムにコメントを挿入するためのステートメントで、プログラムの実行にはかかわりありません。 REMは’(アポストロフィ)で代用できます。

### READ

［機能］ | DATA文で用意されたデータを変数に入れます。
［書式］ | READ x1［，x2，x3，･･････］ x1，x2，x3：DATA文のデータを入れる変数
［解説］ | DATA文で用意されたデータを読み込んで、変数に割り当てます。READ文はいつもDATA文と対にして使い、 DATA文の定数データは、READ文の変数と１対１に対応し、かつ双方同じ型でなければなりません。 DATA文は行番号の若い順にデータの並びの先頭から読み込まれ、DATA文の定数データの数がREAD文の 変数の数より多いときには、次のREAD文により引き続き読み込まれます。 データの数が不足しているとはには、Out of Dataエラーになります。RESTOREを使うと、 DATA文を読み直したり、DATA文の読み込み順を変えることができます。

### DATA

［機能］ | READで読むデータを定義します。
［書式］ | DATA 定数１［，定数２，･･････］ 定数：数値定数、文字列のデータ。
［解説］ | READ文で読み込むデータを用意するステートメントで、何かを実行するというステートメントではないので、 プログラム中のどこにでも、いくつでも置くことができます。１つのDATA文によって用意できるデータは、 数値定数および文字列定数です。文字列をデータとして用意する場合、”(ダブルクォーテーション)で囲まなくても 使用できますが、，(カンマ)を区切りに使うので、カンマをデータにする場合にはダブルクォーテーションで 囲まなければなりません。また、：(コロン)をデータにする場合にもダブルクォーテーションで囲む必要があります。

### RESTORE

［機能］ | READ文で読み始めるDATA文を指定します。
［書式］ | RESTORE ［行番号］ RESTORE ［”ラベル名”］ 行番号：読み始めるDATA文の行番号。 ”ラベル名”：LABELで指定した文字列。
［解説］ | このステートメント実行後のREAD文は、行番号、”ラベル名”で指定したDATA文のデータから読み込みを開始し、 RESTOREのみのときには、プログラム中最初に現れるDATA文から読み込みを開始します。

### DEF FN

［機能］ | ユーザーが関数を定義するのに使います。
［書式］ | DEF FN関数名（x1［，x2･･････］）＝式 関数名：FNに続けて書きます。数値型、文字型のどちらでも可能です。 x1，x2：パラメータ。
［解説］ | ユーザーの作った関数を自由に定義することができ、プログラム中で使うことができます。 関数名と定義型の型が一致していれば、文字列関数も定義できます。

### RANDOMIZE

［機能］ | RND関数で発生させる乱数の系列を設定します。
［書式］ | RANDOMIZE ［x］ x：乱数系列を発生させるための初期値。
［解説］ | RND関数はプログラムを実行するたびに同じ系列の乱数を発生させますが、このステートメントを与えることによって、 乱数の系列を変更できます。式を省略した場合は、BASICがランダムに乱数系列を設定します。

### PUSH

［機能］ | データをユーザースタックに書き込みます。
［書式］ | PUSH 式［，式，･･･］ 式：数値、文字列を表わす式。単独の定数、変数、配列を含む。
［解説］ | 数式や文字式などのデータをユーザースタックに順に書き込みます。このステートメントは 式の値を一時保持しておきたい場合などに有効となります。つまり、データを一時退避させておくステートメントです。 また、１つの変数で、配列の代わりに使えます。データのユーザースタックからの読み出しは、 POPステートメントで行います。PUSHされたデータを、POPしたときに型が異なる場合（数値と文字列など）、 「Type mismatch」エラーとなります。

### POP

［機能］ | ユーザースタックから順にデータを読み出します。
［書式］ | POP ［変数］［，変数，･･･］ 変数：数値変数、文字変数または配列変数。
［解説］ | PUSHステートメントによってユーダースタックに書き込まれたデータを読み出して変数に代入します。 POPのみを実行すると、ユーダースタックの初期化をします。 PUSHステートメントによって書き込まれたデータは、POPすると、最後に書き込まれたデータから読み出されます。 1つ以上の変数を指定してPOP実行時にユーザースタックに何も入っていない場合、「Out of stack」エラーとなります。

先頭に戻る