スッキリわかるJava入門 第2章 式と演算子
●式の構成要素
・b = a + 5;
a,b,5:オペランド(operand)
+= :演算子(operator)
⇒より複雑な式であっても、すべての式はこの2つの要素だけで構成されている。
●リテラル(literal)
・オペランドの中でも数字「5」や文字列「Hello World」など、
ソースコードに記述されている値の事をリテラルと呼ぶ。
●エスケープシーケンス(escape sequence)
・String型やchar型のリテラルを記述する際に使われる特殊な文字。
・「\記号と、それに続く1文字」の合計2文字による記述方法で、
2文字で特殊な1文字を表現する
\":二重引用符記号(")
\':引用符記号(')
\\:円記号(\)
\n:改行(制御文字)
●評価結果への置換の原則
・演算子は周囲のオペランドの情報を使って計算を行い、
それらオペランドを巻き込んで結果に化ける(置き換わる)。
1+5
↓評価 ⇒+演算子はオペランド1と5を使い、それらを足した計算結果「6」に化ける。
6
1+5-3
↓評価 ⇒「1+5」の部分が「6」に化けて「6-3」という式に変形。
6 -3
↓評価 ⇒「6-3」が処理された結果の「3」に化けて計算終了。
3
●優先順位の原則
・式に演算子が複数ある場合は、
Javaで定められた優先順位の高い演算子から順に評価される。
●結合規則の原則
・式の中に同じ優先順位グループに属する演算子が複数ある場合、
演算子ごとに決められた「方向」から順に評価される。
●算術演算子
・+ - * / % など
/ ⇒整数同士の割り算に用いると「商」を計算する。
「9/2」が4と評価されてしまうのが困る場合は、
「9.0/2」のようにどちらかのオペランドを少数にする。
●インクリメント・デクリメントはほかの演算子と一緒に使わない
・int a = 10;
int b = a++; ⇒bは10(変数b代入後にaが1増える)
・int a = 10;
int c = ++a; ⇒cは11(aが1増えた後に変数c代入)
⇒不要なバグの原因となる為、特別な理由がないかぎり単独で使う。
●型の変換
・Javaが式を評価する過程で自動的に型を変換する。
①代入時の自動型変換
・数値型の意味的な大小関係
整数型>> byte < short < int < long < 浮動小数点型>> float < double
・「小さな型」の値を「大きな型」の変数に代入する場合に限って、値が自動的に代入先の型に変換されて代入される。
float f = 3; ⇒float型の変数にint型を代入
double d = f; ⇒double型の変数にfloat型を代入
※ここに例を2つ
②明示的な型変換
・キャスト演算子(cast operator)による強制的な型変換。
・元のデータの一部を失ってもデータを無理矢理に変換する。
int age = (int)3.2; ⇒ageは3になる
⇒よほどの理由がない限り使わない
③演算時の自動型変換
・異なる型で演算を行った場合は「意味的に大きな型」に統一されて演算される。
・片方のオペランドがStringなら、他方もStringに変換して連結する。
●命令実行の分
・Javaが初めから準備してくれている命令を呼び出す。
・呼び出す命令の名前(引数);
System.out.println("Hello world!!");