引数の概要
前回は変数の有効範囲について解説しました。今回解説するの関数の引数も有効範囲があるのでその辺りも踏まえて解説します。引数は苦戦する所です「引数」って言葉に惑わされず、イメージを持つ事が大切です。ではいつもの様に頭の中のイメージを掲載します。

引数は箱が仕切られているイメージです。「引く数」というより「引き連れる数」という感じ方がイメージしやすいと思います。
では関数解説3の例題に対してコーヒーの値段・所持金・電車賃を引数として使うとこんな感じになります。
コード
int buyCoffee(int cff,int vl,int fr) //自作関数 引数コーヒーの値段、所持金、電車賃
{
int cnt=0; //カウンター
int bns=0; //おまけ
if(vl>=cff+fr)
{
for(int i=1;i<=(vl-fr)/cff;i++)
{
cnt++; //1本購入
if(cnt%5==0) //余りがゼロの時
bns++; //おまけ1本追加
}
}
else
puts("諦めた");
return cnt+bns; //返り値
}
int main()
{
int coffee=120;
int val=1000;
int fare=200;
printf("%d\n",buyCoffee(coffee,val,fare)); //自作関数を読む
return 0;
}
VBAで書くと
Sub main()
Dim coffee As Integer 'コーヒーの値段
Dim val As Integer '所持金
Dim fare As Integer '電車賃
coffee = 120
val = 1000
fare = 200
MsgBox buyCoffee(coffee, val, fare) '自作関数を読む
End Sub
'自作関数 引数コーヒーの値段、所持金、電車賃(_は改行コード)
Function buyCoffee _
(ByVal cff As Integer, ByVal vl As Integer, ByVal fr As Integer) As Integer
Dim cnt As Integer
Dim bns As Integer
Dim i As Integer
cnt = 0 'カウンター
bns = 0 'おまけ
If (vl >= cff + fr) Then
For i = 1 To Int((vl - fr) / cff)
cnt = cnt + 1
If (cnt Mod 5 = 0) Then
bns = bns + 1
End If
Next i
Else
MsgBox "諦めた"
End If
buyCoffee = cnt + bns '返り値
End Function
関数で宣言されている引数の変数はその関数内でしか使用できないので注意してください。
例題では引数に変数を使いましたが直接値を入れてもオッケーです。今回の例題は色々なコードを書くことができます。例えばコーヒー代・所持金・電車賃を全てグローバル変数にしてしまえば引数は要りません。色々試してみると実力がつくのでチャレンジしてみましょう!!質問などありましたらコメント欄にお書き下さい。
次回はライブラリについて解説したいと思います。