新人プログラマーにとって、コードを書くことは楽しくもあり、難しいことでもあります。誰でも最初は失敗を犯し、間違いを起こすものですが、一度起こしたバグを修正することで、よりよいコードを書くための経験がついていきます。今回は、新人プログラマーがよく作りこむバグトップ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について、紹介しました。これらのバグは、初心者にとってはついやりがちなものですが、それぞれ正しい書き方を把握することで、バグを回避することができます。プログラマーとして成長するためには、バグを見つけ、修正することが大切です。