今更聞けないJava・演算子いろいろ

演算子を一通りまとめてみました

・四則演算子

 

一番使用する演算子です。

加算・減算・乗算・除算・剰余算の5つがあります、簡単に言うと足し算とか引き算のことですね。

  計算 記号  使用例   結果
  
 加算  +  10 + 2  12
 減算  -  10 - 2   8
 乗算  *  10 * 2  20
 除算  /  10 / 2   5
剰余算  %  10 % 2   0

 

乗算と除算の記号が数学で使うものとは違うので気をつけましょう。

乗算(掛け算)には”*(アスタリスク)”

除算(割り算)には”/(スラッシュ)”を使用します。

剰余算は除算の「余り」の結果になります。

 

また、普通に計算する感じで使用できるので記号さえ気をつければ大丈夫だと思います。

// 普段習った通りの公式で計算できる。
  1 + 2   * 3 = 7
( 1 + 2 ) * 3 = 9  

 

平方根とかちょっと複雑な計算は専用のクラスを使った方がいいです(やってやれないことはないが)

今回は演算子に関することなんでまた機会があれば。

 

・比較演算子

 

条件分岐とかで使う演算子です。

 記号   使用例             意味

  >   a >  b  a が b より大きければ  true
  >=  a >= b  a が b 以上なら       true
  <   a <  b  a が b より小さければ  true
  <=  a <= b  a が b 以下なら       true
  ==  a == b  a と b が等しければ    true
  !=  a != b  a と b が等しくなければ true

 

(=)が二つありますが、1つの時と2つの時で意味が変わってくるので注意しましょう。

// 処理が違うので注意
a = b    // a に b を代入する
a == b   // a と b を比較し、等しければ true

 

if 文とか while文で使用することが一番多いかと思います。

class Sample {
     public static void main ( String[] args ) {
         int score = 80;   
         
         // スコアが50点以上なら true
         if ( score >= 50 ) {

             /* true ならこのブロックの処理が行われる */

         }
     }
 }

 

一応文字や文字列にも比較演算子は使えるんですが、" >" とか "<" は使えないんでご注意を。

◯ → 'a' == 'b' // 同じなら true なので使える
X → 'a' >= 'b' //  大きいかどうかで比較出来ないんで使えない

あと文字で比較するのはあんま好まれてないみたいなので、基本は数字がいいと思います。

 

・論理演算子

 

ブール論理演算子

if 文とかで条件を増やしたい時なんかに使います。

この演算子を使うことでより細かく条件分岐を行うことが可能になります。

記号      意味

 &&  どちらも true なら true
 ||  どれかが true なら true

使用例

class Sample {
     public static void main ( String[] args ) {
         int score = 80;   
         
         // スコアが50点以上、80点以下なら true
         if ( score >= 50 && score <= 100 ) {
         }
     }
 }

"score <= 100" がない場合は、50以上なら何点でも良かったですが、100点以下の条件を増やしたことによって条件が細かくなりました。

もっと細かい条件を出したい時はさらに増やしたらいいですね。

 

「&」「|」演算子

ブール演算子と似ていますが記号は一個だけです

class Sample {
     public static void main ( String[] args ) {
         int score = 80;   
         
         // スコアが50点以上、80点以下なら true
         if ( score >= 50 & score <= 100 ) {
         }
     }
 }

これらは似ていますが比較する時の処理の動きが少しだけ違います。

&&   左から比較していき false になったら比較を終了させる

&    左から比較していきどちらの結果でも次の比較を行う。

同じようなif 文での違い

// iの結果をそれぞれ出力した場合
int i = 0;
①:if ( false  & ++i > a ) 
②:if ( false && ++i > a ) 

結果

①:1
②:0

 

こんな感じで結果が確定しても次の比較が行われるという違いがありますね。

パイプの場合は逆になりますのでご注意ください。

 

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

 

要素に 1 を足す、または 1 を引く演算子です。

// インクリメント
++a または a++  要素から1加算する a = a + 1

// デクリメント
--a または a--  要素から1減算する a = a - 1

 

使用感の違いは代入式を行なった時に起こります。

b に a を代入する場合

b = ++a;      a が加算されてから b に代入される
b = a--;      b に代入されてから a が加算される

 

代入式を行うと結果が異なってしまうことがあります、なので基本的にはこれらは単体で使うことが多いですね。

 

・文字の連結

 

+ 演算子は文字を繋げる時にも使えます。

// 通常の四則演算
1 + 1            数値で 2 になる。
// 連結
"1" + 1          11 と言う文字列になる

文字同士を連結させることも出来ますし、文字と文字以外を連結させることも出来ます。

連結された要素は全て文字列に自動的に変換されます。

文字列の変換方法は何個かあるんですが、とりあえず一番簡単な方法です。

 

演算子の種類はそれほど多くないんで覚えられると思います。

似た演算子でも処理が少し違ったりするので動作の違いに気を付けてくださいね。

 

以上、演算子についてでした。

Comments

Add your comment

user-symbol

Stay in touch

Get Practical Tips For Business and Developers.

Learn about PieceX Community Needs for Source Code Projects.

Be the First to Know PieceX Newest Free Community Code Projects.