【Java入门】Java运算的基础(面向初学者)

这是我作为一名刚起步的程序员整理并公开的自己的备忘录,也可以算作复习的一部分。由于有可能存在错误,请谨慎参考。

心态

    学校で習った数学のイメージでやると違いにビビる
x = x + 1;

和/或/或者

count += 2;

作为程序员的我可能会说“啊是的”,但对于刚刚开始学习编程的人来说可能会感到“!??”不解。

    このように一般的な数学の演算子の意味と異なることがあるので、基本的には別の意味と思って臨むことが必要。

只需要找出共同点即可。

公式的组成元素

    1. 演算子(Operater):「+」「-」「=」など

 

    オペランド(Operand):演算子以外のこと

直译

    • ソースコードに記述されている値であり、それ自体が要素となるもの

 

    オペランドとの違いは、リテラルは記述された値そのものが要素となるが、オペランドは記述された値が要素そのものとは限らない
int a , b;
a = 10;          //10は整数リテラル
b = a + 27;     //a,b,27はオペランドだが、リテラルは27のみ

boolean flag;
flag = true;     //trueはbooleanリテラル

评价

    演算子は周囲のオペランドを使って計算を行い、オペランドと共に値へと変化する
int numA = 1;
int numB = 2;
int ans = numA + numB;
// 演算子+がnumAとnumBと共に値3へと変化する。

if(numA < numB){
    System.out.println("numAはnumBより小さい");
}
// 演算子>がnumAとnumBと共にtrueへと変化する

System.out.println(numA == numB);
// 実際に文字出力すると、結果はfalseになる

运算符 zǐ)

    • 右記サイトが分かりやすい(丸投げ)。参考)Javaの道:演算子

 

    ざっと表にまとめておく
種類演算子意味(ざっくり)備考算術演算子+足す

-引く

*掛ける

/割る

%余りを求める
代入演算子=右辺を左辺に代入する

+=左辺に右辺を足した値を代入する

-=左辺から右辺を割った値を代入する

*=左辺に右辺を掛けた値を代入する

/=左辺から右辺を割った値を代入する

%=左辺割る右辺の余りを代入する
インクリメント演算子++値を1増加させるa++と++aで意味が異なる
†注1デクリメント演算子–値を1減少させるa–と–aで意味が異なる
†注1比較演算子==等しい†注2
!=等しくない

>大きい

>=以上

<小さい

<=以下
論理演算子&かつ

&&かつ短絡評価を行う
†注3
|

||または短絡評価を行う
†注3
!否定

†注1:a++执行后会先给变量 a 赋值再加 1。++a会先加 1 再赋值。

int a = 0;
int b = 0;
System.out.println(a++);    // 結果は0
System.out.println(++b);    // 結果は1

System.out.println(a);    // 結果は1
System.out.println(b);    // 結果は1

但事实上很少只看到”i++”这样的独立代码段,没有看到过或写过那种不能区分的代码(至少目前为止)。
我认为只需要在脑海中牢记这个想法就可以了。

注意:当比较对象时需要小心。参考:对象的比较。
短路评估是什么。

int num = 5;
if(num > 2 || num > 7){
    // 処理A 
} else {
    // 処理B
}

如果存在像这样的处理,当 num > 2 的评估完成时,可以确定为真,因此不需要进行 num > 7 的评估。
这样一旦评估确定,就不再进行不必要的后续评估,这就是短路评估。

三个运算符

    下記のように使用する
[条件] ? [TRUEの場合の返却値] : [FALSEの場合の返却値] ;
    安易に使用すると可読性が悪い、と言われるため注意が必要。慣れるまでは読むとき専用で覚えるとよい
int n = a > 0 ? 1 : 0 ;
// 意味は以下と同じ

int n;
if(a > 0){
    n = 1;
} else {
    n = 0;
}

(仅提供一个选择)

参考)

    三項演算子は悪か?
广告
将在 10 秒后关闭
bannerAds