ゲーム制作

ゲーム制作に必要なC#をマスターしよう!【式と演算子編】

ユウ
ユウ
こんばにちは、ユウです。
今回からはこのシリーズ(C#)では演算子に入っていくよ!
例えば、プログラミングで使用する「+」や「-」、「=」などのことを演算子というよ。
今回の記事ではこれらについて詳しく解説していくからきちんと理解できるようにしてね!

本記事の内容

☑ある程度演算子を使いこなせるようになる

今回C#を紹介するにあたって、発行元:SB クリエイティブ株式会社 著者:粂井 康孝(くめい やすたか)さんの「猫でもわかるC#プログラミング」を参考に紹介しています。

 

式と演算子

例えば次のような式をプログラムで書いてみましょう。

y = x +10

この式の「=」と「+」が演算子となります。式を覗いてみると、xと10を操作してyに影響を及ぼしていることがわかります。

C#で取り扱っている演算子は物理演算子、関係演算子、論理演算子、代入演算子、ビット演算子など様々な演算子があります。

演算子によって操作されるものをオペランド(演算項目)といいます。

式(expression)はオペランドと演算子によって成り立っています。式の末尾にセミコロン(;)を付けると文(statement)になります。

この文がプログラムの実行単位となるわけです。式は評価(evaluation)されて値を持つようになります。

例えば1+1という式は評価されて2という値を持ちます。

この場合、x =1+1とすると、1+1という式を評価して「2」という値を持ちます。

そして、x=2というようになります。この際この式自体も評価されてからxは2をだいにゅうされます。

少しややこしくなってしまったので、プログラムを書いて一度確認してみましょう。

「=」と「+」の演算子では当たり前のように「+」のほうを優先して実行していますが、これは
「=」よりも「+」のほうを先に実行しなさいという約束事がある
からです。

実行する順番についての約束事を演算子の優先順位と言います。

演算子の優先順位は、使っていくうちに覚えるので意識して覚える必要はありません。

算術演算子

算術演算子というのは+,-,*,/,%,++,–があります。

ご存じの通り+は+の前後の式に加算の操作を加えます。

このように算術演算子は式に対して算数のようなことをしてくれます。

それでは実際にプログラムで書いてみましょう。

実行結果をみてみると+演算子の前後どちらかが文字列だと、実行結果は文字列となります。

これは以前学習している内容だと思います。

double型とint型では大きいほうであるdouble型の方になります。

このように普通は大きいほうに合わせればよいのですが、少し複雑な規則があります。

「A+B」の演算子においてA,Bがdecimal型でないときは次のように順に適応されていきます。

1、一方がdoubleならば他方もdoubleに変換

2、一方がfloatならば他方もfloatに変換

3、一方がulongならば他方もulongに変換(他方が符号付きならばエラー)

4、一方がlongならば他方もlongに変換

5、一方がuintで他方が符号付きなら両方ともlongに変換

6、一方がuintならば他方もuintに変換

7、両方をintに変換

それではdecimal型ではどうでしょうか。一方がdecimal型だった場合他方もdecimal型に変換されます。しかし、doubleやfloatはdecimalに変換できません。

それではプログラムを書いてみましょう。

「20/3」はオペランドが二つともint型ですので演算結果もint型となります。

それと比較して「20/3.0」ではint型とdouble型ですので演算結果はdouble型となります。

最後に

今回は演算子の最初部分について触れていきました。

特に算術演算子は、これから当たり前のように使っていく演算子ですのできっちりと覚えるようにしましょう!

今回はこれで以上となります。

最後まで読んでいただきありがとうございました!

前回の記事ーー>

ゲーム制作に必要なC#をマスターしよう!【変数とデータ型 まとめ】これまで11回にわたってお送りしたゲーム制作のC#。その変数とデータ型のまとめになります。整数型と浮動小数点型、decimal型と文字型、論理型と暗黙の型指定、スコープと列挙型、オブジェクトなど多くのことを詰め込んでます!...
ABOUT ME
ユウ
ユウ
プログラミング担当です。夜行性大学生やってます。 メンバーの中で一番プログラミングが得意で、将来はBMIという研究をしてALSの患者さんへの医療機器の開発を目標にしています。(すごそう) 無線LAN有線LANより便利。