CS(コンピューターサイエンス)基礎の基礎
現在、CS基礎の基礎を一から学んでいるので、その学習成果のアウトプットに、、、
今回は「演算子」
1. 演算子とは
プログラミングにおいて、あるデータに対して特定の処理を行い、その結果を返す記号のことを「演算子」と呼ぶ。
演算子は「オペレータ」とも呼ばれ、その演算子によって特定の処理が行われるデータのことを「オペランド」と言う。
1-1. 演算子の種類
それぞれの演算子の役割は言語ごとに異なる場合があります。上の図はあくまでRubyではこのように扱われているというものなので、ご自身が使用している言語での使われ方を確かめるようにしてください。
1-1-1. 【Pick Up!】 代数演算子
代数演算子とは、四則演算のような一般的な計算に利用する演算子を指す。
1-1-2. 【Pick Up!】 比較演算子
比較演算子とは、データ同士の関係性を比較し、その結果を「True」か「False」で返すものを指す。
1-2. 計算結果のデータ型
演算子を用いた計算では、計算結果がどのようなデータ型で返されるのかも注意する必要がある。例えば、「1 + 2.5」という式の結果は言語によって異なるが、より精度の高いデータ型を選び、「1」をfloat型の「1.0」に変化させ、結果を「3.5」とfloat型で返す場合が多い。
このように言語によって計算結果がどのようなデータ型になるのかにも気を使う必要がある。
2. 演算子のオーバーロード(overload)
演算子は「整数型」や「浮動小数点型」のデータの計算や比較のみを行うだけでなく、「文字列型」のデータを連結させるという役割も果たす。このようなデータ型を跨いで演算子を利用する方法を、「演算子のオーバーロード(overload)」と呼ぶ。
例えば、「puts "1" + "2"」のようにコードを打った場合と、「puts 1 + 2」とコードを打った場合とでは、「1」と「2」のデータの扱いが違うため、「+」の扱いも違ってくるということになる。
3.演算子の「優先順位」と「結合法則」
例えば、「3 + 1 * 2」という計算を行おうとした場合、「+」よりも先に「*」の方の計算を行うことになる。このように違う種類の演算子が含まれている式の場合には、「優先順位」が定められている。
また、「3 + 1 - 2」のように、同じ優先順位の演算子が含まれている場合は、「結合法則」というものが適用され、「左から右」へと順番に計算が実行されるようになる。
この「優先順位」と「結合法則」は言語によっても異なってくるので、頭に入れておいて損はないそうですよ。
4.学び
算数とプログラミングでは、例えば「算数では『=』は『イコール』であっても、プログラミングでは『=』は『右の値を左に代入』である」など、同じ演算子でも扱い方がかなり異なるということを改めて学びました。
また、計算の結果がどのようなデータ型で返されるのかという点にも注意を払って行かなければならないということも学び、より一層コーディングを丁寧に行っていこうという気持ちになりました。