新人プログラマーがよく作りこむバグ!トップ3

ブログ

新人プログラマーにとって、コードを書くことは楽しくもあり、難しいことでもあります。誰でも最初は失敗を犯し、間違いを起こすものですが、一度起こしたバグを修正することで、よりよいコードを書くための経験がついていきます。今回は、新人プログラマーがよく作りこむバグトップ3について、ご紹介します。

1.NullPointerException

新人プログラマーがやりがちなのは、NullPointerExceptionです。これは、オブジェクトがnullの状態で、そのオブジェクトのメソッドを呼び出した場合に発生します。以下は間違った例です。

間違った例

String str = null;
if(str.equals("test")) {
    System.out.println("テスト成功");
}

正しい例

String str = null;
if(str != null && str.equals("test")) {
    System.out.println("テスト成功");
}

※”test”.equals(str)と書く方法もあります。

2.IndexOutOfBoundsException

次によくあるバグとして、IndexOutOfBoundsExceptionが挙げられます。これは、配列の範囲外にアクセスしようとした場合に発生します。以下は間違った例です。

間違った例

int[] nums = {1, 2, 3};
System.out.println(nums[3]);

配列の添え字は先頭が0なので、上記だと4つめを参照しようとしています

正しい例

int[] nums = {1, 2, 3};
if (nums.length > 3) {
    System.out.println(nums[3]);
}

3.論理演算子の間違い

新人プログラマーは、論理演算子の使い方を間違えることがあります。例えば、複数の条件を判定する場合に、ANDとORを混同してしまうことがあります。以下は間違った例です。

間違った例

int num = 1;
if (num == 1 || num == 2 && num == 3) {
    System.out.println("条件に合致しました");
}

正しい例

int num = 1;
if ((num == 1 || num == 2) && num == 3) {
    System.out.println("条件に合致しました");
}

※論理演算子には優先順があるためORよりANDが先に判定されます

まとめ

今回は、新人プログラマーがよく作りこむバグトップ3について、紹介しました。これらのバグは、初心者にとってはついやりがちなものですが、それぞれ正しい書き方を把握することで、バグを回避することができます。プログラマーとして成長するためには、バグを見つけ、修正することが大切です。

タイトルとURLをコピーしました