Javaでキーボードからの入力値を配列に代入からの、並び替えなど

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]);
		}

	}
}

いろんな方法がありますね~。