パパの勉強部屋

勉強の記録をつけています。Java、ネットワーク、Excel、etc.

スッキリわかる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!!");