JAva基本機能強化-演算子、条件文、繰返し文
Java演算子
JAvaには、次の演算子があります.
型演算子宣言演算子+-*/%<>>四則演算子とその他の演算子(%)比較演算子>>=<==!=大きさが等しいか異なる比較論理演算子&&&|!&|^~'次に、条件を(AND)「および」「または」(OR)「関連付賦値演算子=右側の値を左の他の(type)?に保存します.Instanceof型変換演算子、三項演算子、instanceof演算子
一般に、算術演算子は基本型(primitive)にのみ使用できます.したがって、演算子を比較して文字列を比較する場合は、==
演算ではなく、Stringオブジェクトのequals()メソッドを使用する必要があります.このような非基本型の参照型は異なる方法で比較しなければならない.
算術演算で注意したいのは、浮動小数点演算を正確に計算するには、浮動小数点と二重タイプを使用しないほうがいいことです.
対応する解決策については、次のリンクを参照してください.[3]
正解が必要な場合は、浮動小数点と二重精度は避けてください
演算子の変換例
既定のタイプの範囲を超えると、オーバーフローが発生し、予想以上の結果が得られます.これは、自分のタイプの範囲を超え、最大値を超え、範囲の一番下(負数の末尾)から演算を再開するためです.long a = 1_000_000 * 1_00_000; // a = -727379968
long b = (long)1_000_000 * 1_000_000; // b = 1000000000000
(b == 1_000_000L * 1_000_000);
(b == 1_000_000 * 1_000_000L);
上記のように、2つの中で1つのタイプを変えるだけでいいです.
算術の過程において、順序は算術結果(5/2=2.5)の後に結果(2.5)を形変換する.
算術変換とは?演算を実行する被演算子の自動変換
1)2つの被演算子のタイプが一致します.(より大きなタイプに一致)long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
ex) 5/(float)2 -> 5.0f/2.0f -> 2.5f
2)被演算子のタイプがintより小さい場合はintに変換する.byte + short -> int + int -> int
char + short -> int + int -> int
instanceof演算子
instanceof演算子はjavaで概念を継承するための演算子で、特定のオブジェクトの実際のクラスタイプ(依存クラスを含む)を決定します.通常は条件文で使用され、変形が可能かどうかを確認するために使用されます.class A {
...
}
class B extends A {
....
}
class C extends A {
...
}
B b = new B();
b instanceof B == true;
b instanceof A == true;
b instanceof C == false;
名複文
break文は隣接する重複文から1つしか離れないため、複数の重複文が重複している場合、break文は重複重複重複文から完全に離れることはできません.この場合、重複する重複文の前に名前を付け、break文とcontinue文に名前を指定することで、1つ以上の重複文から飛び出したりスキップしたりすることができます.loop1 : for(int i=1;i<10;i++) {
for(int j=i;j<10;j++) {
if (j == 5) {
// loop1, 즉 밖의 for문이 break 되어 전체 루프가 종료된다.
break loop1;
}
}
}
swtich付加機能
JAva 12バージョンで初めて発生したswitch式は、switch文の他の式を可能にします.この期間中、同じcaseを表現する場合、caseを1つずつ加え、これを行うのではなく、次の例のように,
を用いて同じcaseを表現する.switch文から結果を返すこともできます.[2]
使用例:プログラマの問題解決コードの例private static String getNumberViaBreak(int number) {
// 결과 리턴
String result = switch (number) {
case 1, 2:
break "one or two";
case 3:
break "three";
case 4, 5, 6:
break "four or five or six";
default:
break "unknown";
};
return result;
}
その後、バージョン13では、->
式によって:
の代わりに使用することができる.private static String getNumberViaCaseL(int number) {
return switch (number) {
case 1, 2 -> "one or two";
case 3 -> "three";
case 4, 5, 6 -> "four or five or six";
default -> "unknown";
};
}
最後にjava 14バージョンではbreakを完成品として結果をリターン変更しました.private static String getNumberViaCaseL2(int number) {
return switch (number) {
case 1, 2 -> "one or two";
case 3 -> "three";
case 4, 5, 6 -> {
int i = 0;
i++;
yield "four or five or six :" + 1;
}
default -> "unknown";
};
}
ランダ式
Java 8バージョンではラムダ式が追加され、java言語はオブジェクト向け言語として機能し、関数型言語としても機能します.
ラムダ式は方法を「式」と表す.ラムダ式は関数を簡潔で明確な方法で表現できるようにした.
メソッドをramda式として表すと、メソッドの名前と戻り値が失われるため、ramda式は「匿名関数(anonymousfunction)」とも呼ばれます.int[] arr = new int[5];
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1);
上記のラムダ式を方法で表現すると以下のようになる.int method() {
return (int)(Math.random() * 5) + 1;
}
ランダ式の特徴
1)簡潔で分かりやすい.
2)メソッドを別途宣言することなく使用できる.
3)メソッドのすべての機能は変わらないので,メソッドを変数のように扱うことができる.
long a = 1_000_000 * 1_00_000; // a = -727379968
long b = (long)1_000_000 * 1_000_000; // b = 1000000000000
(b == 1_000_000L * 1_000_000);
(b == 1_000_000 * 1_000_000L);
long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
byte + short -> int + int -> int
char + short -> int + int -> int
class A {
...
}
class B extends A {
....
}
class C extends A {
...
}
B b = new B();
b instanceof B == true;
b instanceof A == true;
b instanceof C == false;
loop1 : for(int i=1;i<10;i++) {
for(int j=i;j<10;j++) {
if (j == 5) {
// loop1, 즉 밖의 for문이 break 되어 전체 루프가 종료된다.
break loop1;
}
}
}
private static String getNumberViaBreak(int number) {
// 결과 리턴
String result = switch (number) {
case 1, 2:
break "one or two";
case 3:
break "three";
case 4, 5, 6:
break "four or five or six";
default:
break "unknown";
};
return result;
}
private static String getNumberViaCaseL(int number) {
return switch (number) {
case 1, 2 -> "one or two";
case 3 -> "three";
case 4, 5, 6 -> "four or five or six";
default -> "unknown";
};
}
private static String getNumberViaCaseL2(int number) {
return switch (number) {
case 1, 2 -> "one or two";
case 3 -> "three";
case 4, 5, 6 -> {
int i = 0;
i++;
yield "four or five or six :" + 1;
}
default -> "unknown";
};
}
int[] arr = new int[5];
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1);
int method() {
return (int)(Math.random() * 5) + 1;
}
メソッド:クラス内の機能->メソッド
関数かんすう:独立した関数->ram多項式によるかんすう
=最終的には両方とも関数と見なすことができるが、混同することなく、位置によって用語を区別する.
ラムダ式の作成
ラムダ式は「匿名関数」のように、メソッドから名前と戻りタイプを削除し、パラメータ宣言子と体幹{}の間に「->」を追加します.
方法
戻りタイプメソッド名(パラメータ宣言){
文章
}
ランダ式
戻りタイプメソッド名(パラメータ宣言)->{
文章
}
ラムダ式サンプルコード
int max(int a, int b) {
return a > b ? a : b;
}
(int a, int b) -> a > b ? a : b;
OR 람다식은 타입 추론이 가능한 경우 모두 생략가능하다.
(a, b) -> a > b ? a : b;
内容を整理する
この文章はJava言語の基礎を築くために書かれたものです.
この文書のエラーまたは追加する必要がある内容は次のとおりです[email protected]分かち合えばありがたいです
文章全体がjavaの定式を参照しているので、文に参照マークを付けていません.
リファレンス
1. 白旗仙-ジャバステディ
2. What is new in Java 13
3.効果java 3 rd版
4.Javaの定式書3 rd Edition
Reference
この問題について(JAva基本機能強化-演算子、条件文、繰返し文), 我々は、より多くの情報をここで見つけました
https://velog.io/@host92/자바-기본기-다지기-03
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(JAva基本機能強化-演算子、条件文、繰返し文), 我々は、より多くの情報をここで見つけました https://velog.io/@host92/자바-기본기-다지기-03テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol