文字の”を出したいときそのまま入力するとコンピュータは"を閉じるの意味かなと思ってエラーにする
→
\"と書いてやって「これは文字ですよ」と伝える
式の評価(エバルエーション)
普通の+とか-は左から計算
ただ*のほうが優先順位高い
()があればそっちが先
代入の場合(=)は右から計算して左に代入する
% 剰余の計算 モジュラー演算子
/ 9/2を実行すると4になってしまう。9.0/2と小数にするとちゃんと小数点まででるらしい
オペランドのどっちかが文字列だと「計算」でなく「結合」になる。
+= 自分自身に自分と新しいのを足す
i++;
i += 1;
i = i+1;
この3つは同じ意味
なお
++iはほかの演算子とかと使わない
a=b=10;
System.out.println(++a + 50);//この結果は61
System.out.println(b++ + 50);//この結果は60と表示された後に61に増やされる
型の変換
ある型で宣言された変数には、その型しか入らない
int型に浮動小数点は入れられない
long型もintも入らない
小さい箱に大きいものは入らない(逆はあり得る)
float f =3;
double d=f;
System.out.println(f+"と"+d);
p78
int i = 3.2;
と追加してコンパイルしてみる
→
エラー:
Main060.java:18: エラー: 不適合な型: 精度が失われる可能性があるdoubleからintへの変換
int i = 3.2;
intに小数は入らないよという。
じゃあこの前に丸括弧でintを入れましょう
int i = (int)3.2;
System.out.println("iは"+i);
実行結果
iは3
小数点以下が切り落とされてintに収まった。強引に箱に収めるよう型を変換するこの方法を「キャスト」「キャストする」という。
(int)のことはキャスト演算子という。
もしint型とdouble型で計算したら結果はdouble型(大きいほうにそろう)
double d=8.5/2;
long l = 5+2L;
String msg = "私の年齢は"+23;
System.out.println("d:"+d+" l:"+l);
System.out.println("msgは"+msg);
この結果
d:4.25 l:7
msgは私の年齢は23
p86まで追加
String name = "すがわら";
String message;
message = name +"さんこんちは";
System.out.println("message:"+message);
p93 練習2-2
1 x
2 floatのほうがちいさいのでdoubleに入る 〇
3 x
4 〇
5 〇
6 x
7 〇