--/--/-- (--) スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |


2011/05/20 (Fri) JAVA 4日目 復習用(._.)φ

prog04.jpg

◆インクリメント・デクリメント演算子

int a=1; 

インクリメント演算子
a++;
a=a+1;

デクリメント演算子
a--;
a=a-1;

※「変数」の値を1加減算する。
※「++a」(前置デクリメント演算子)「a++」(後置デクリメント演算子)どちらの表記も使える。
→ただし、実行結果が異なる場合がある

class Sample5
{
public static void main(String[] args)
{
int a = 0;
int b = 0;

b = a++; //(1)
b = ++a; //(2)

System.out.println("代入後にインクリメントしたのでbの値は" + b + "です。");
}
}

実行結果
(1)の場合0 (2)の場合1 となる。

(1)はaをbに代入したあとaに1を加える。
(2)はaに1を加えたあとbに代入する。


◆代入演算子

「=」
左辺の変数に右辺の値を代入する。

複合的な代入演算子
+=
-=
*=
/=

a += b;
は、a+bの値をaに代入する。

つまり
a = a+b;
と同じ意味。

※複合的な代入演算子の間にスペースを入れてはいけない ×「+ =」

複合的な代入演算子例(コード抜粋)

String str1 = br.readLine();
String str2 = br.readLine();
String str3 = br.readLine();

int sum = 0;
sum += Integer.parseInt(str1);
sum += Integer.parseInt(str2);
sum += Integer.parseInt(str3);

これは

String str1 = br.readLine();
String str2 = br.readLine();
String str3 = br.readLine();

int sum = 0;
sum = sum + Integer.parseInt(str1);
sum = sum + Integer.parseInt(str2);
sum = sum + Integer.parseInt(str3);

と同じ。


◆シフト演算子

「<<」「>>」「>>>」など

数値を2進数であらわした場合の桁を左右に指定数だけシフトする。

左シフト(<<)の例

7<<3

→2進数→111→111000→10進数→56

右シフト(>>)の例
※正の値なら0、負の値なら1を入れる

5>>2

→2進数→101→右に2桁シフト→001→10進数→1

-1>>1

→2進数→1111111111→左に1桁シフト→1111111111→10進数→-1

※「>>>」の場合は負の値でも0を入れる
※滅多に使用することはない
※内部では2進数で数値が扱われているため四則演算より処理が早い

◆演算子の優先順位

通常の四則計算と同じ
優先順位を変更させる場合は()を利用する

代入演算子(=)は四則演算より優先順位が低い

その他の例は 92p-93p

同じレベルの場合は、
左結合(代表例:+-*/)の場合左から
右結合(代表例:=)の場合右から計算する。

基本的には、
単項演算子と代入演算子は右結合。

参考
System.out.println("1+2は"+ (1+2) +"です。"); //①
System.out.println("1+2は"+ 1+2 +"です。"); //②
System.out.println("1+2は"+ 1*2 +"です。"); //③

①は足し算の結果が得られる。3。
②は文字列の連結になる。12。
③の場合、「*」の優先順位が「+」より高いので()がなくとも掛け算の結果が得られる。

◆型変換

class Sample
{
public static void main(String[] args)
{
int inum = 160;
//double dnum = 160;
System.out.println("身長は"+inum+"cmです。");
//System.out.println("身長は"+dnum+"cmです。");

double dnum = inum;
//int inum = (int)dnum
System.out.println("身長は"+dnum+"cmです。");
//System.out.println("身長は"+inum+"cmです。");
}
}

小さな型から大きな型へ入れることは可能。
その逆はそのままでは不可能。

その場合、キャスト演算子を使用する。
→(型名) 式

int inum = (int)dnum

◆異なる型の計算

2つの異なるオペランドを記述すると一方を大きなサイズの型に変換して演算を行う。

→int型の2 double型の3.14 を掛け合わせると 2.0と3.14として計算している。

◆同じ型の計算

int num1 = 5;
int num2 = 4;
double div = num1/num2;

こうするとdivの値は1.25ではなく1.0と表示される。

intの5と4で計算(小数点切捨て)して、doubleの箱に入れるイメージ

回避するには、

上のintのどちらかをdoubleにするか、キャスト演算子を使う。
double div = (double)num1/(double)num2;

※変数を使わないで計算する場合はキャスト演算子を使うか2.0などと小数点を含んだ数値を書く。

①7.0/3
②(double)7/3

◆おまけ

class SampleOMAKE

public static void main(String[] args)
{
String msg;

msg = "引数に指定した文字列は"+args[0].length()+"文字です。";
System.out.print(msg);

}
}

引数に入れた文字列が何文字なのかを表示するプログラム。

プログラミング | trackback(0) | comment(0) |


<<東京タワ、あ? | TOP | 世知辛い世の中>>

comment











管理人のみ閲覧OK


trackback

trackback_url
http://kononushi.blog46.fc2.com/tb.php/484-cc6572e8

| TOP |

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。