Javaで配列操作をいろいろ学習しました。
package arrays; import java.util.Scanner; public class PrintArray3 { public static void main(String[] args) { // System.out.print("要素数: "); // 配列の要素数 int num = new Scanner(System.in).nextInt(); // 配列生成 int[] ary = new int[num]; int ary_length = ary.length -1; int temp = 0; // 配列の初期化 for(int ary_index= 0; ary_index < ary.length; ary_index++ ) { System.out.print("ary[" + ary_index + "] = "); ary[ary_index] = new Scanner(System.in).nextInt(); // 配列の最後の要素の初期化が終わったら、 if(ary_index == ary.length -1) { System.out.println("aの順番を入れ替えました。"); // 配列の順番を入れ替える for(int after = 0; after < ary.length; after++) { // 配列の真ん中の要素を超えない間、 if(after <= (ary.length -1) / 2) { // 配列右端の要素を退避 temp = ary[ary_length]; // 配列右端の要素に左端の要素を代入 ary[ary_length] = ary[after]; // 退避していた右端の要素を左端の要素に代入 ary[after] = temp; // 右端の要素のインデックスを1つ減らす ary_length--; } // 入れ替え後の配列の要素を出力 System.out.println("ary[" + after + "] = " + ary[after]); } } } } }
package arrays; import java.util.Scanner; public class PrintArray4 { public static void main(String[] args) { // System.out.print("要素数: "); // 配列の要素数 int num = new Scanner(System.in).nextInt(); // 配列生成 int[] ary = new int[num]; int ary_length = ary.length -1; int[] b = new int[ary.length]; // 配列の初期化 for(int ary_index= 0; ary_index < ary.length; ary_index++ ) { System.out.print("ary[" + ary_index + "] = "); ary[ary_index] = new Scanner(System.in).nextInt(); // 配列の最後の要素の初期化が終わったら、 if(ary_index == ary.length -1) { System.out.println("aの順番を入れ替えました。"); // 配列の順番を入れ替える for(int after = 0; after < ary.length; after++) { b[after] = ary[ary_length]; ary_length--; // 入れ替え後の配列の要素を出力 System.out.println("b[" + after + "] = " + b[after]); } } } } }
package arrays; import java.util.Scanner; public class PrintArray2 { public static void main(String[] args) { // System.out.print("要素数: "); // 配列の要素数 int num = new Scanner(System.in).nextInt(); // 配列生成 int[] ary = new int[num]; // 配列の初期化 for(int ary_index= 0; ary_index < ary.length; ary_index++ ) { System.out.print("ary[" + ary_index + "] = "); ary[ary_index] = new Scanner(System.in).nextInt(); } // 出力結果 for(int i = 0; i <ary.length; i++) { // 配列の最初の要素のときの処理 if(i == 0){ System.out.print("{"); } System.out.print(ary[i]); // 配列の最後の要素以外の処理 if(i != ary.length -1) { System.out.print(", "); // 配列の最後の要素のときの処理
} else { System.out.print("}"); } } } }
配列も難しいですね。
2017年6月29日 追記
講師の方に、for文に複数の変数を設定するやり方を教わりました。
package arrays; import java.util.Scanner; public class CopyArrayReverse { public static void main(String[] args) { System.out.print("要素数:"); int num = new Scanner(System.in).nextInt(); int[] a = new int[num]; // オリジナル配列 int[] b = new int[num]; // オリジナルの逆配列 // オリジナル配列の生成 for (int i = 0; i < a.length; i++) { System.out.print("a[" + i + "] = "); a[i] = new Scanner(System.in).nextInt(); } // オリジナルの逆配列の生成 for (int i = 0, j = num -1; i < num; i++,j--) { b[j] = a[i]; } System.out.println("aの配列の全要素を逆順にコピーしました。"); // 結果の表示 for (int i = 0; i < b.length; i++) { System.out.println("b[" + i + "] = " + b[i]); } } }
いろんな方法がありますね~。
今回はこのへんで。