ビデオ: エンジニアの役割はたった1つ・・・矛盾解消 2024
Javaプログラミングの論理エラーは、Java言語要素の使用上のコーディング上の問題やエラーを反映していないため、コードは書かれたとおりに完全に実行されます。実行する予定のタスクは実行されていません。
その結果、論理エラーは見つけにくいエラーになります。あなたはエラーの正確な理由を探してコードを調べる時間を費やす必要があります。 Java開発者が遭遇する一般的な論理エラーのリストを次に示します。
<! - 1 - >-
誤った演算子優先順位の使用: Javaが演算子を解釈する順序は重要です。開発者が正しい場所にかっこを入れていないため、アプリケーションが誤った結果を出すことがよくあります。
たとえば、次の例では、4つの変数から11,13,9、および8の出力を生成しています。すべてがカッコの位置(または不足)に起因しています。
public class OperatorError {public static void main(String [] args){//いくつかの変数を作成します。 int MyVar1 = 5 + 4 * 3/2; int MyVar2 =(5 + 4)* 3/2; int MyVar3 =(5 + 4)*(3/2); int MyVar4 =(5 +(4 * 3))/ 2; //結果を出力します。システム。でる。間違ったカウントを定義する:
-
おそらく最も一般的な論理エラーです(「MyVar1:」+「MyVar1」+「nMyVar2:」+「MyVar2 +」「nMyVar3:」+「MyVar3 +」「MyVar4:」+ MyVar4)物事を間違って数えています。人々は1でカウントを開始することに慣れており、コンピュータはしばしば0でカウントを開始します。したがって、タスクがループを実行しているのか、アイテムの集合で作業しているのかにかかわらず、アプリケーションが正確に1つのタスクを実行することは珍しいことではありません。 <!
条件を定義するために使用されるステートメントを見て、論理を検証せずにステートメントが真(または偽)であると仮定する場合がありますその声明の -
andを使用することは、実際にはandを使用することを意味するときにも問題を引き起こす可能性があります。意思決定に使用されるロジックは、多くの開発者、経験豊かな開発者でさえ多くの問題を引き起こします。条件文の前提条件を必ず確認してください。 <!浮動小数点数が特定の数値を返すと仮定することはできません。
これは、浮動小数点数をチェックして特定の値と等しいかどうかをチェックすることができないことを意味します。チェックを実行するために値の範囲を使用する必要があります。浮動小数点数は常にJavaの近似値です。
整数値を使用して値を測定する: -
整数は正確であるためアイテム数をカウントするのに最適です。しかし、多くの整数演算では不正確な結果が生じます。これは特に除算に当てはまります。なぜなら、余りは常にオフのためです。 (数値は切り捨てられます)何かと精度を測定する必要がある場合は、浮動小数点値やBigDecimalオブジェクト型を使用することが重要です。 セミコロンの置き忘れ:
-
間違った場所にセミコロンがあっても、完全にコンパイルして実行するJavaコードを作成することは可能です。次に例を示します: public class ForLoopError {public static void main(String [] args){//変数を宣言します。 int Count; //ループを作成します。 for(Count = 1; Count <= 10; count ++); {//結果を出力します。システム。でる。 println( "Count is" + Count);}}}
-
セミコロンは、コードブロックの後ではなく、for文の直後に表示されることに注意してください。 Countの個々の値を出力する代わりに、Countが11である単一の文を出力します。