1。オペレーター
オペレーターには以下が含まれます。
算術演算子割り当てオペレーター比較演算子ロジック演算子ビット演算子三角法演算子
最も一般的に使用されていないビットオペレーターは、基礎となるコンピューターに最も近いオペレーターでもあります。
1。算術演算子
(1) +のいくつかの使用法:追加、正の数字、文字列連結文字
(2)整数を分割するときに1つの問題に注意する必要があります。それらを一緒に分割すると、整数しか得られません。小数を取得するには、データ自体 *1.0、つまり、データ自体を最初に浮動小数点タイプに変換できます。
2。割り当て演算子
シンボル= += - = *= /=%=
注:= =基本的な割り当てオペレーターであり、その他は拡張課題オペレーターです
インタビューの質問:
(1)Short S = 1、S = S+1;
(2)Short S = 1、S+= 1;
上記の2つのコードに問題はありますか?もしそうなら、どこに問題がありますか?
回答:コード(1)が正しくなく、精度が失われます。バイトとショートを定義するとき、それらは実際にタイプintの値を受け取ります。これは自分で行われます。範囲内になくなった場合、エラーが報告されます。効果は次のとおりです。
コード(2)にはエラーがありません。なぜなら、拡張割り当て演算子は実際にキャストを意味するためです。
つまり、i += 1; i = i + 1に相当しません。ただし、i =(iのデータ型)(s + 1)に相当します。
3。リレーショナル演算子
注1:比較演算子の結果はブール値です。つまり、それらは真または偽です。
注2:比較演算子「==」は、誤って「=」と書かれていません。例えば:
4。論理演算子
(1)論理演算子は、ブール式を接続するために使用されます。 Javaでは3 <x <6として書くことはできませんが、x> 3&x <6として書く必要があります。
(2)「&」と「&&」の違いは?同様に、「|」の違いです。と「||」?
A:最終結果は同じです。たとえば、AとBは同時に真でなければならず、A&BとA&Bの結果は真です。 B:&&には短絡効果があり、左側は偽で、右側は実行されません。 ||短絡効果があり、左側は真であり、右側は実行されません。
注:開発で一般的に使用される論理演算子:&&、||、!
(3)XOR( ^)とまたは(|)の違いは次のとおりです。左と右の両方が真の場合、XORの結果はfalseです。
5。ビット演算子:
開発にはあまり使用されていませんが、コンピューターの基礎となるコンピューティングはビット操作であるため、多くのソースコードで見られます。
インタビュー質問1: 2つの整数変数の交換を実装する
コードは次のとおりです。
/*インタビューの質問:自分で2つの整数変数の交換を実装してください*/class operatortest {public static void main(string [] args){int a = 10; int b = 20; system.out.println( "a:"+a+"、b:"+b); //方法1:サードパーティ変数を使用します(開発で使用)int c = a; a = b; b = c; system.out.println( "a:"+a+"、b:"+b); System.out.println( "---------------"); //方法2:ビットxorを使用して実装(インタビュー)//左:a、b、a //右:a ^ ba = a ^ b; b = a ^ b; // a ^ b ^ b = aa = a ^ b; // a ^ b ^ a = b system.out.println( "a:"+a+"、b:"+b); //方法3:変数を使用してa = a + bを追加します。 // a = 30 b = a -b; // b = 10 a = a -b; // a = 20 system.out.println( "a:"+a+"、b:"+b); * //方法4:1つの文で完了しますb =(a+b) - (a = b); // b = 30-20 = 10、a = 20 system.out.println( "a:"+a+"、b:"+b); }}インタビュー質問2:最も効率的な方法で2回8を計算した結果を書いてください。
回答:2 * 8は2 << 3に相当します
知識レビュー:
<<:左と右側の最高のビットを捨てます。 >>:右側の最高ビットは0で、左側は0です。最高は1で、左側は1 >>>です:最高ビットが0または1、左側は0、左側は0であるかどうかに関係なく、右シフトなし右シフト。
6。3点演算子:
形式:(リレーショナル式)?式1:式2;
条件が真の場合、操作後の結果は式1です。
条件が偽の場合、操作後の結果は式2です。
例:
多数の2つの数字を取得します。
コピーコードコードは次のとおりです。INTx = 3、y = 4、z; z =(x> y)?x:y; // z変数は2つの数字の多くを保存します。
3つの整数の最大値を取得します。
//方法1:2つのステップで// a:aとbの最大値を比較します。 //system.out.println(temp); int max1 =(temp> c?temp:c); System.out.println( "max1:"+max1); //方法2:1つのステップでint max2を取得=(a> b)?((a> c)?a:c):((b> c)?b:c); //この方法は推奨されません:// int max2 = a> b?a> c? A:C:B> C? B:C; //system.out.println("max2:"+max2);方法1を使用することをお勧めします。さらに、モード2では、10行目と12行目は同じであり、三角演算子のネストされた使用です。
2つの整数が等しいかどうかを比較してください。
// 2つの整数が等しいかどうかを比較しますint m = 100; int n = 200; // boolean flag =(m == n)? True:false;ブールフラグ=(m == n); System.out.println(flag);
2。キーボードデータ入力
プログラムを作成している場合、データ値は固定されていますが、実際の開発ではデータ値が変更する必要があるため、データをキーボード入力に改善してプログラムの柔軟性を向上させることを計画しています。
キーボードデータ入力を実装する方法は? (今すぐ使用することを忘れないでください)
(1)送信パッケージ(クラス定義の上の位置):Java.util.scannerをインポートします。
(2)キーボードエントリオブジェクトの作成:スキャナーSC =新しいスキャナー(System.in);
(3)オブジェクトを介してデータを取得する:int x = sc.nextint();
例コード:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。