為替ロボット 研究所

« プログラムの作成 練習2-1 | メイン | プログラムの作成 練習2-3 条件分岐 »

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

前回のコードに少し手を加えてこのようにしてみました。
結果はどうなるでしょうか。

int i;
int start(){
string mojiretsu; //文字列変数mojiretsuを宣言
i++;
mojiretsu ="i="+i ;
Print(mojiretsu);
return(0);
}
結果は「i=1」、「i=2」、、、となります。
太字の部分で、変数mojiretsuには文字列「i=」にiの値をくっつけたものが代入されているからです。

*ここではわざわざ変数を使っていますが、print()内に直接入れてしまっても構いません。
Print(mojiretsu); → Print("i="+i);

数値同士の場合は、その計算結果が表示されます。
int i,j;
i=1;
j=2;
Print(i+j);//結果「3」が表示される

つまり、「文字列+文字列」や「文字列+数値」は文字列になり、「数値+数値」は数値になります。

ではこうするとどうなるでしょう?
int i,j;
i=1;
j=2;
Print("i+j="+i+j);

結果は「i+j=12」になります。
これはまず文字列"i+j="+数値iが行なわれて文字列"i+j=1"になり、続いて文字列"i+j=1"+数値jが行なわれるからです。
i+jを数値として計算したい場合は、()でくくって
Print("i+j="+(i+j) );
とします。

プログラム内では算数の演算と同じ優先順位があります。
( )内が最優先、次が*(掛ける)や/(割る)、そのあとで+や-、という順番です。
例えば、1*2+3は5で 、1+2*3=7、(1+2)*3=9 となります。

ということは
Print("i*j="+ i * j );
とすると、i*jの部分が先に計算されますので、結果は「i*j=2」になります。



« プログラムの作成 練習2-1 | メイン | プログラムの作成 練習2-3 条件分岐 »

トラックバック

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

コメント

コメントしてください




保存しますか?


おすすめFX