為替ロボット 研究所

« コンパイル時エラーの対処方法 | メイン | プログラムの作成 練習2-2 演算 »

プログラムの作成 練習2-1

変数についてさらに練習してみましょう。

その前に気をつけておくことがあります。
変数名はできるだけ自分で分かりやすいように名づければよいのですが、
予約語とかぶらないように気をつけてください。
エディタで入力した時に色が変わって表示されるものは、システム上ですでに予約されている単語なので、新たな変数名としては使えません。
一部の小文字を大文字に変えるなどして無理やり使い分けることもできますが、おすすめはしません。

さて、変数をつかった次のプログラムを見てください。
int start()
{
int i; // 変数i を整数として宣言
print(i); // iの中身(=0)を表示
return(0);// 終了
}
前回までのHello.mq4とほとんど同じですね。
これはティックが更新されるたびに「0」と表示されます。
変数iは宣言をしただけで、何も代入していません。
何も値を入れていない変数の中身は0になります。
(stringの場合は空っぽの状態(=NULL)になります)

これに少し手を加えます。
int start()
{
int i; // 変数i を整数として宣言
i=i+1;
print(i); // iの中身を表示
return(0);// 終了
}
i=i+1は、「i+1の値を iに代入する」という意味です。「iの値を1増やす」と考えるほうが自然でしょうか。
ここではiは0+1で1になります。
このように変数の値を1増やすという処理はよく使われるので、特別に「変数++」 というふうに省略して書くことができます。i=i+1ならi++というようにです。
i--というのもあって、これはi=i-1のことです。

似たような感じで、i +=1 というのもあります。これもi=i+1の意味ですが、最後の数字を変えればi=i+2や3などの代わりにもできます。
+=だけじゃなく、-=、 *=、 /=、などもできます。例えばi *=3はi=i*3の意味です。

さてプログラムに戻ります。
この場合の結果は毎回「1」が表示されます。なぜなら、start(){~}の中で宣言された変数は毎回、リセットされてしまうからです。
リセットされて0になっているところへ1を足したものが出力されるので結果は常に1です。

では回数を重ねるごとに数を増やしていきたい場合はどうすればいいでしょうか?
実はこんなふうに、変数の宣言をstart(){~}の外に出してしまえばいいのです。

int i; // 変数i を整数として宣言
int start()
{
i=i++; // i=i+1の意味
print(i); // iの中身を表示
return(0);// 終了
}
これで変数iがリセットされることはなくなりますので、1,2,3,4と、毎回値が1ずつ増えていくようになります。
このように変数の値を保存しておきたいものは、start()の外で宣言するようにしてください。



« コンパイル時エラーの対処方法 | メイン | プログラムの作成 練習2-2 演算 »

トラックバック

このエントリーのトラックバックURL:
http://kawarobo.com/motp/mt-tb.cgi/336

コメント

コメントしてください




保存しますか?


おすすめFX