Javaの基礎03Java演算子

プログラミングが好きなあなたのように!
SpringBoot実用的なコースは学習https://edu.csdn.net/course/detail/31433
SpringCloud入門コースを学びhttps://edu.csdn.net/course/detail/31451を


序文

これまで、誰もがJavaの変数とデータ型を習得していました。保存されたデータを操作する必要があります。Javaの演算子について学びましょう。

Java演算子

一般的な演算子は次のとおりです

割り当て演算子 =、+ =、-=、* =、/ =、%=
算術演算子 +、-、*、/、%、++、–
リレーショナル演算子 >、<、> =、<=、==、!=
論理演算子 &&、|| 、!、&、|
三元演算子 条件?値1:値2

割り当て演算子

等号演算子

機能:右側の値または式の値を
左側の変数に割り当て、右から左に操作します

int num = 1 + 2 + 3;

注:=の右側は値、変数、または式にすることができ、=の左側は変数でなければなりません

num1 + num2 = 1 + 2 + 3; 错误

複合代入演算子

含まれるもの:+ =、-=、* =、/ =、%=など。
関数は、割り当て前に操作を実行することです。

int num1 = 2;
num1 += 3;
作用等价于 
num1 = num1 + 3;

利点:簡潔で高性能

num1 += 3;		//只做一次运算
num1 = num1 + 3; 	//加法和赋值2次运算

一般的な面接の質問:次のコードの結果は何ですか?

short s1 = 1;
short s2 = 1;
s1 += 1; //正确,复合运算是一次运算,1是在short范围内,看做short数值处理
s2 = s2 + 1;//出错,先执行加法运算,表达式的值会转换为int,int不能直接赋值给short

注:複合代入演算には、数値オーバーフローの隠れた危険性があります。コンパイラーは、複合代入演算中に値の範囲をチェックしません。
ここに写真の説明を挿入

算術演算子

基本的な算術演算

含まれるもの:+、-、*、/、%
注:

  1. %の役割は、余りを見つけることです。10%3 = 1
  2. 文字列+操作は接続することです

運動

以下表达式的运行结果是:
10 + 20  - 30 * 4 / 5 % 6   = ?
"123" + 4 = ?  
1 + 3 - 5 * 2 + "100"  = ? 

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

関数:変数自体の値に1を加算または減算します

int num = 10;
num++;   //num加一为11
num--;     //num减一为10

プレフィックスとサフィックス

 num++; // 后缀
 ++num; // 前缀

注:++および–操作のみが実行される
場合、プレフィックスとサフィックスの間に違いはありません。他の操作が一緒に実行される場合:

  • プレフィックス:最初に増減してから、他の操作を実行します
  • サフィックス:最初に他の操作を実行してから、自動インクリメントまたは自動デクリメントを実行します

演習1:n1、n2、およびn3の値は何ですか?

int n1 = 10;
int n2= n1--;    		// 先赋值,后减一,n2 = 10     n1 = 9
int n3 = ++n2; 	       //先加一,后赋值,n2 = 11    n3 = 11

演習2:この時点でres1、a、bの値を推測してください

int a = 3; 
int b = 2; 
int res1 = (a++)*(--b) ; 

演習3:この時点でres1、a、bの値を推測してください

int a = 3; 
int b = 2; 
int res1 = (++a) + (b--) + (a++)+ (--b);

リレーショナル演算子

内容:>、<、> =、<=、==、!=
関数:関係の計算に使用されます。操作後に返される結果は、次の
ようなブール型です。

10 > 3  =  true
6 <= 100 = false

==と=の違い

== 比较两个值是否相等
= 进行赋值

演習1:以下のb1、b2、およびb3の値は何ですか?

boolean b1 = 10 > 5;     
boolean b2 = 12 == 3;   
boolean b3 = b1 != b2;  

論理演算子

内容:&&、||、!
関数:関係演算子と連携して論理判断を実現し、ブール式で演算する必要があります

論理的および

式1 &&式2 &&の
両側の式は同時に真である必要があり、最終結果は真であり、そうでない場合は偽です。

true && true = true
true && false = false
false && false = false

論理OR

式1 ||式2
|| 2つの式の1つだけが真である必要があり、結果は真です。どちらも真でない場合、結果は偽です。

true || true = true
true || false = true
false || false = false

論理否定

!式が
否定されました

!true = false  
!false = true

優先: !> &&> ||

演習1:以下のb1、b2、およびb3の値は何ですか?

boolean b1 = 10 > 5 && 12 == 3;   
boolean b2 = 12 == 3 || 4 > 3;  
boolean b3 = b1 != !b2;  

演習2:以下のフォームに記入してください

オペランド1 オペランド2 && || オペランド1
true true
false false
true false
false true

演習3:
完了条件:変数の1桁は3で、6で割り切れる、または変数は100で割り切れる

int num = 1234;
boolean result = ?

ブレーク機能

&&および||操作中に、効率を向上させるために、コンパイラーは、前の式の結果に従って、後者の式が
&&を実行するかどうかを判別します。

表达式1 && 表达式2
表达式1为false,表达式2不会执行

||

表达式1 || 表达式2
表达式1为true,表达式2不会执行

&および|式の実行前と実行後の両方で、サーキットブレーカー機能はありません

演習1:a、b、c、dの最終結果は何ですか?

int a = 3;
int b = 4;
boolean c = (a > b) && (--b < a);  
boolean d = (b > 0) || ( a++ > 0);   

演習2:a、b、c、dの最終結果は何ですか?

int a = 3;
int b = 4;
boolean c = (a > b) & (--b < a);  
boolean d = (b > 0) | ( a++ > 0);   

三元演算子

3つの部分が含まれています:

数据类型 变量名 = 条件 ? 值1 : 值2;

機能:条件判定に使用できます。条件は真、戻り値は1、条件は偽、戻り値は2です。

演習1:三項演算子を使用してn1とn2の最大値を見つける方法。

int n1 = 10,n2 = 11;
int max = ?;

演習2:3つの数値の最大値を見つけますか?

int n1 = 10,n2 = 11,n3 =12;
int max = ?;

演算子の優先順位

高から低への優先順位:

  • ()括弧
  • ++、–、!単項演算子
  • *、/、%乗算、除算、剰余算術演算子
  • +、-足し算と引き算
  • >、<、> =、<=、==、!=関係演算子
  • &&論理演算子と
  • ||または
  • ?:三項演算子
  • =、+ =、-=、* =、/ =、%=代入演算子

終わり

宿題を残して、学習状況を確認します
。1。res1、a、bの最終値を推測し、計算プロセスを説明してください。

int a = 3; 
int b = 2; 
int res1 = (a++)*(--b) + (--a)/(b++); 

2.変数値が4桁の整数であると仮定して、変数の数十、数百、および数千桁を取り出して出力する方法。
3.うるう年を判断するためのルールは次のとおりです。年は400で割り切れる、または年は4で割り切れて100で割り切れないようにし、年変数を定義して、年がうるう年かどうかを出力します
。4。年齢変数を定義します。年齢が35歳を超える場合、名前変数。名前はLao Wangです。それ以外の場合、名前はXiao Wangであり、3値演算子によって実現されます。
5. 3桁の整数を入力して、その数が水仙の数であるかどうかを判断します(数は、3桁の立方体の合計に等しい)。数= 1桁の立方体+1桁の立方体+数百桁の立方体(場合)はい出力は水仙の数です。そうでない場合、出力はそうではありません。


他のJavaの知識を学ぶ必要がある場合は、ここでJavaの概要に関する非常に詳細な知識を調べてください。

おすすめ

転載: blog.csdn.net/u013343114/article/details/112238345