ちくやらアーカイブ

このブログは気分よって構成されています。 BGMも気分で流してます。 あなたの忍耐に感謝します。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

論理演算子とif文

if文とかの条件判断に使われる。
ここも知らないと滅茶苦茶ひっかけられる。


&& と || についての注意事として、
左オペランドが成立すると右オペランドは実行しない
というのがある。


A && B においてAがfalseだったら、全体がfalse扱いになりBは実行されない。

A || B においてAがtrueだったら、全体がtrue扱いになりBは実行されない。



例えば
int i = 0;
int j = 0;
の時
if ( i++ == 0 || j++ == 0) System.out.println("i=" + i + " j=" + j);


実行すると
i=1 j=0
を表示する。
つまり、左オペランドが成立しているので右オペランドは無視されてしまったというわけ。



ビット演算子 & と | が使われることがある。
これの時は左オペランドが実行され、
その結果に関わらず右オペランドが実行される。



例えば、
int i = 0;
int j = 0;

if ( i++ == 0 & j++ == 0) System.out.println("i=" + i + " j=" + j);
i=1 j=1

if ( i++ == 0 | j++ == 0) System.out.println("i=" + i + " j=" + j);
i=1 j=1


どっちも同じ。




ついでにif文について

if文はbooleanの値しかとれないので
それ以外だとコンパイルエラーを返す。


boolean b;
if (b = true){}
というように、boolean型の変数だったら
代入を書いてもコンパイルは通り、処理も正常。
ちなみにこの場合はb = trueをしてから(b)の判定をするので
true判定になる。


しかし、
int x = 0;
if (x = 7){}
という書き方をするとエラーになる。





スポンサーサイト
  1. 2005/04/03(日) 14:50:46|
  2. 資格:SJC-P|
  3. トラックバック:0|
  4. コメント:0
<<instanceof | ホーム | 木曜日-a.m.11:11/記憶の森>>

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://runark.blog6.fc2.com/tb.php/22-c9850e8e

ルナーク

Category

Recent Comments

Recent Entries

Recent Trackbacks

Archives

Links

Search

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