関数
関数とは、プログラムの一部に名前を付けたものである。
呼び出し
呼び出しとは、関数を実行することである。呼び出しは関数内でのみできる。
関数を呼び出すと、その関数内の文を順に実行する。そして、呼び出した関数の処理が終了した時点で呼び出し元の関数に復帰する。
呼び出しは仮引数の有無により記述の仕方が異なる。
仮引数 | 記述 | 説明 |
---|---|---|
なし | 名前() | 括弧内には何も記述しない。 |
あり | 名前( 実引数1, 実引数2… ) | 名前( ) の括弧内に、仮引数の数と順に合わせて実引数をカンマ区切りで指定する。 |
呼び出しには、文としての呼び出しと、値としての呼び出しの2つが存在する。ただし、値として呼び出す場合には、その関数は戻り値を返さなければならない。
引数
引数とは、実引数と仮引数の総称である。
実引数
実引数とは、関数を呼び出す時に渡す値である。
実引数は関数を呼び出す時にその関数の仮引数の数だけ指定しなければならない。また、実引数は式として扱われる。
仮引数
仮引数とは、関数へ渡された実引数を格納するメモリ、または作成する変数である。
仮引数は関数を作成する時に指定できる。
戻り値
戻り値とは、関数の呼び出し元へ返す値である。
戻り値を返す場合、その関数は値として呼び出すことができる。
種類
組み込み関数
組み込み関数とは、言語の仕様として作成済みの関数である。
名前 | 引数 | 戻り値 | 説明 |
---|---|---|---|
show | 表示する値 | なし | 末尾に改行を挿入して、値を表示する。 |
clear | なし | なし | 出力した値を全て削除する。 |
wait | 待機する時間 ( 整数値のみ指定可。単位はミリ秒。 ) | なし | プログラムを待機する。 待機中は入力を受け付ける。 ※ この関数はエントリポイントでのみ使用できる。 |
is_pushing_up_key | なし | 上キーを押しているか判断する値 | 上キーを押している場合はtrue を返し、押していない場合は false を返す。 |
is_pushing_down_key | なし | 下キーを押しているか判断する値 | 下キーを押している場合はtrue を返し、押していない場合は false を返す。 |
is_pushing_left_key | なし | 左キーを押しているか判断する値 | 左キーを押している場合はtrue を返し、押していない場合は false を返す。 |
is_pushing_right_key | なし | 右キーを押しているか判断する値 | 右キーを押している場合はtrue を返し、押していない場合は false を返す。 |
is_clicking | なし | クリックしているか判断する値 | マウスをクリックしている場合はtrue を返し、クリックしていない場合は false を返す。 |
is_touching | なし | タッチしているか判断する値 | 画面をタッチしている場合はtrue を返し、タッチしていない場合は false を返す。( 画面をタッチして true になるのはタッチデバイスのみ。 ) |
get_hours | なし | 時 | 現在の時刻の「時」を返す。 |
get_minutes | なし | 分 | 現在の時刻の「分」を返す。 |
get_seconds | なし | 秒 | 現在の時刻の「秒」を返す。 |
例
function main()
// 1. Hello world を表示
// 2. 1秒( 1000ms )待機
// 3. 出力した値を削除
// 4. 入力中の情報を表示
show( "Hello world." )
wait( 1000 )
clear()
if is_pushing_up_key()
show( "Up key." )
if is_pushing_down_key()
show( "Down key." )
if is_pushing_left_key()
show( "Left key." )
if is_pushing_right_key()
show( "Right key." )
if is_clicking()
show( "Click." )
if is_touching()
show( "Touch." )
自作関数
自作関数とは、自身で作成した関数である。
作成
作成するには、下記のいずれかの構文を記述する。この構文は関数外で使用できる。
仮引数を指定しない場合
function 名前()
ブロック
仮引数を指定する場合
function 名前( 仮引数1, 仮引数2… )
ブロック
名前には半角の小文字英字( a-z )、またはアンダースコア( _ )が使用できる。
仮引数
仮引数は、作成する時のfunction 名前( )
の文の括弧内にメモリ、または変数を指定する。
指定する時の記述は下記の通りである。
仮引数 | 記述 | 呼び出し時 |
---|---|---|
メモリ | memory[ 番号 ] | ○番のメモリに実引数が格納される。 |
変数 | memory[ 番号 ] name 名前 | ○番のメモリに実引数が格納され、指定した名前の変数が作成される。 |
また、仮引数を複数指定する場合は、カンマで区切る。
例
function main()
show_arugments( 100, "value" )
function show_arugments( memory[ 0 ], memory[ auto ] name value )
show( memory[ 0 ] )
show( value )
戻り値
戻り値を返すには、下記の文を記述する。値は式として扱われる。
return 値
例
function main()
show( get_one_hundred() )
function get_one_hundred()
return 100
終了
関数は最後の文まで処理した時、または戻り値を返した時に終了する。
ただし、戻り値を返却せずに関数を終了したい場合、return
の値に何も指定しないことでできる。
例
function main()
show_a_or_b( true )
show_a_or_b( false )
show( get_one_hundred() )
function get_one_hundred()
// ↓ の戻り値を返した時点で関数が終了する。そのため、呼び出しても"show"は表示されない。
return 100
show( "show" )
function show_a_or_b( memory[ auto ] name is_a )
if is_a
show( "a" )
// ↓ で戻り値を返さず関数を終了する。
return
show( "b" )
エントリポイント
エントリポイントとは、プログラム実行時に呼ばれる関数である。
エントリポイントはmain
と名付けなければならない。また、引数と戻り値は不要である。
function main()
// ブロック