2019/09/06:Java基礎(演算子・型変換)
インクリメント・デクリメント演算子
インクリメント(デクリメント)演算子は、変数の値を1加算(減算)する。「++」インクリメントで1加算
「--」デクリメント2減算
前置と後置があり、
前置インクリメント演算子は、インクリメントをしてから代入する。
後置インクリメント演算子は、代入してからインクリメントする。
代入演算子
代入演算子(assignment operator)は左辺の変数に右辺の値を代入する。+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
%= 剰余代入
&= 論理積代入
|= 論理和代入
^= 排他的論理和代入
<<= 左シフト代入
>>= 右シフト代入
>>>= 符号なし右シフト代入
型変換
一般にJavaでは、大きなサイズの型に小さなサイズの型の値を代入することが出来る。intからdouble型への代入等。
また、クラス型に基本型を代入する際
String型 = int型
のようにそのままでは代入できず、上記の場合は
String型=String.valueOf(int)
で代入することが出来る。
これはクラス型と基本型のメモリの扱いが異なる為である。
大きな型への代入
小さなサイズの型に代入は出来ない。これを行うにはキャストする必要がある。
キャスト演算子
小さなサイズの型に大きなサイズの型を代入する際は、型を変換することをはっきりと明示的に書いておく必要がある。
キャスト演算子の構文は
(型名) 式
前項のエラー部分は、
int inum = (int)dnum;
とする事でコンパイルできるが、小数点以下は切り捨てられる点に注意。
異なる型同士で演算を行った場合は、一方のオペランドを
大きなサイズの型に変換してから演算を行う。
同じ型同士での演算
同じ型同士での演算をする場合でも、演算結果が型の範囲を超えた値になる場合は、
出力前にキャストをしなければ出力値が異なる場合もある。
例。