以下はchar型の配列に重複の要素があるかどうかを判定するプログラムです。
私の書いたコードです。これでも上手くいきます。
Java
1 2 public static void main(String[] args) { 3 char chars[] = { 'a', 'p', 'c', 'l', 'e' }; 4 String reslut = "要素が重複していません"; 5 6 7 outer: for (int i = 0; i < chars.length - 1; i++) { 8 if(i == j){ 9 continue; 10 } 11 for (int j = 1; j < chars.length - 1; j++) { 12 if (chars[i] == chars[j]) { 13 System.out.print(i); 14 System.out.println(j); 15 reslut = "要素が重複しています"; 16 break outer; 17 } 18 } 19 } 20 System.out.println(reslut); 21 } 22}
こちらはサンプルのコードです。
Java
1 public static void main(String[] args) { 2 char[] chars = { 'a', 'p', 'p', 'l', 'e' }; 3 boolean isDuplicated = false; 4 5 for (int i1 = 0; i1 < chars.length - 1; i1++) { 6 for (int i2 = i1 + 1; i2 < chars.length; i2++) { 7 if (chars[i1] == chars[i2]) { 8 isDuplicated = true; 9 break; 10 } 11 } 12 if (isDuplicated) { 13 break; 14 } 15 } 16 17 if (isDuplicated) { 18 System.out.println("要素が重複しています"); 19 } else { 20 System.out.println("要素が重複していません"); 21 } 22 }
このサンプルで私のi == j(配列内の同じ値を比べて要素が重複していると判定しているのを防ぐ)の部分はどこに当たりますか。またなぜそうなりますか。
if(i == j){
continue;
}
の位置がこれでは動かないと思います.
回答4件
あなたの回答
tips
プレビュー