• ベストアンサー

配列の変換について

こんにちは、お世話になります。 次のコードで、どうしてint[] i = {1,2,3};が int[] i = new int[3]; int[0] = 1; int[1] = 2; int[2] = 3; のようになるのか分かりません。お分かりの方よろしくお願いします。 class arr{ public static void main(String[] args){ String[] name = new String[3]; name[0] = "1番目"; name[1] = "2番目"; name[2] = "3番目";      System.out.println("nameの0:" + name[0]); System.out.println("nameの1:" + name[1]); System.out.println("nameの2:" + name[2]); int[] i = {1,2,3}; System.out.println("iの0:" + i[0]); System.out.println("iの1:" + i[1]); System.out.println("iの2:" + i[2]); char c[] = new char[1]; c[0] = 'A'; System.out.println("cの0:" + c[0]); } }

  • qtrix
  • お礼率0% (0/17)

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

次は、小生のHPからの抜粋です。 var n = new Array(3); は n が3個の配列であることを宣言しています。 JavaScript では、配列を使うためには Arrayオブジェクトと new 演算子を用いて配列宣言をします。 JavaScript も C 同様に、配列の添字は常に 0 から始まるために、その要素は n[0]、n[1]、n[2] になります。 配列は宣言時に初期化データを指定することがでるので、この宣言は、また、次のように書くことができます。 var n = new Array(0, 0, 0); ところで、 n[0]=n[1]=n[2]=0; という行は、三つの配列要素のすべてに 0 をセットします。 「これは、特殊な場合ではなく、代入文には値があり、右から左に代入が行われる結果である。 これは、実際、次のように書くのと同じである。」(「プログラミング言語C」26頁) n[0]=(n[1]=(n[2]=0)); とまあ、一種の約束事です。

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

Javaの配列変数の作成コーディングとして下記の3通りあります。(処理結果は同じ) (1). //『宣言』 int[] i; //『生成』 i = new int[3]; //『代入』 i[0] = 1; i[1] = 2; i[2] = 3; (2). //『宣言』と『生成』 int[] i = new int[3]; //『代入』 i[0] = 1; i[1] = 2; i[2] = 3; (3). //『宣言』と『生成』と『代入』 int[] i = {1,2,3};

関連するQ&A

  • 配列について

    class Sample1{ public static void main(String args[]){ int test[] = {89,56,56,77,54}; for(int i =0; i < test.length; i++){ System.out.println((i+1) + "番目の数は" + test[i] +"です。"); } } } >System.out.println((i+1) + "番目の数は" + test[i] +"です。"); の位置のtest[i]ってどこから来たんでしょうか? iには1番目とか2番目などといったものを出力するためにあるのであって、いつの間に89,56,56,77,54といった値が代入されのでしょうか?なんか漠然とした質問なんですがお願いします。

    • ベストアンサー
    • Java
  • 配列を使った・・・。

    配列を使って簡単な迷路を作っているのですが、なかなかうまくいきません。 0を" "1を"■"を表示させたいのですがうまくいきません。 何処を直せばいいのか教えてください。 public class Sample1 { public static void main (String[]args) { int [][] data = { {1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1}, {1,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1}, {1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1}, {1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,1}, {1,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1}, {1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1}, {1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1}, {1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1}, {1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1}, {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; for (int i=0; i<10; i++) { for (int j=0; j<20; j++) { System.out.print(data [i][j]); } if(data [i][j] = 1){ System.out.println("■"); }else{ System.out.println(" "); } } } }

    • ベストアンサー
    • Java
  • java 入力命令

    以下うまくどうさしません、教えてください。 public class Main { public static void main(String[] args){ System.out.println("名前"); String name = new java.util.Scanner(System.in) .nextLine(); System.out.println("年齢"); int age = new java.util.Scanner(System.in) .nextInt(); System.out.println (age + name); } }

  • Javaで配列を定義する方法

    こんにちは、片岡といいます。 Java言語で配列を定義する場合、以下の二つの書式に違いはありますか。 違いがあるとすれば、どのような違いですか。 また、違いがないのならば、どちらの記述がよいのですか。 ご存知の方はいらっしゃいませんか。 (1) public class Main1 { public static void main(String[] args) { String str[] = new String[] { new String("itiban"), new String("niban"), new String("sanban"), }; for (int i = 0; i < str.length; i++ ) { System.out.println(str[i]); } } } (2) public class Main2 { public static void main(String[] args) { String str[] = { new String("itiban"), new String("niban"), new String("sanban"), }; for (int i = 0; i < str.length; i++ ) { System.out.println(str[i]); } } } なお、私の環境は以下の通りです。 OS: Microsoft Windows XP Professional SP2 java: java version "1.4.2_13" 検索エンジンで"配列 オブジェクト java"を検索しましたが、 解決に役立つ情報は見つかりませんでした。

    • ベストアンサー
    • Java
  • ファイル操作 ファイルにTABを入れる

    ファイルの入出力をやっています。一文字を読み込んだ後にOUTPUTファイルにカンマの代わりにTABキーを入れ込みたいのですが、それがどうしてもうまくいきません・・・ public class FileRead { // ファイル名 private static final String INFILE_NAME = "input01.csv"; private static final String OUTFILE_NAME = "output01.tsv"; public static void main(String[] args) { // FileReaderクラス宣言 BufferedReader fr = null; FileWriter fos = null; try { // FileReaderクラス生成 fr = new BufferedReader(new FileReader(INFILE_NAME)); fos = new FileWriter(OUTFILE_NAME); // 読み込み int i; while ((i = fr.read()) != -1) { //System.out.print((char)i); //char chra=(char)i; fos.write(i); } System.out.println("--- 読み込み完了 ---"); } catch (IOException e) { System.out.println("Exception : " + e); } finally { try { // FileReaderクラスを閉じる 続く・・・ 教えてください!!

  • 配列に値を入れて表示させたいが

    import java.util.*; class Sample{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("クラス数:"); int n = std.nextInt(); int[][]a = new int[n][]; System.out.print("1組の人数");    int m = std.nextInt(); for(int i=0;i<m;i++){ a[i] = std.nextInt(); //ここの部分でコンパイルエラー    System.out.println("(i+1)"+"組"+(i+1)+"番目の点数"+a[i]);   } } } 互換性のない型?と出ますなぜでしょう

    • ベストアンサー
    • Java
  • java iを1づつ増やすプログラムと2づつ増やすプログラム

    次のようにすればiを1づつ増やして表示されます。 class Calc{   int i=1;   int add(){     return i++;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{   int i=1;   int add(){     return i+2;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?

    • ベストアンサー
    • Java
  • 多次元配列について

    このような課題が出ました。  複数人の名前を入力してから  3教科の点数を全員分入力し、  各教科の平均点と、最高点と取った人の名前を表示せよ。 頑張って途中までやったんですが、ここから先に進めません。 どういうふうにやればいいんでしょうか? import java.io.*; class K203 {  public static void main(String args[]) throws IOException{   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   System.out.print("人数を入力して下さい:");   String str = br.readLine();   int ninzuu = Integer.parseInt(str);   String name[] = new String[ninzuu];   for(int i=0; i<ninzuu; i++){    System.out.print(i+1+"人目の名前を入力してください:");    name[i] = br.readLine();   }   String subject[] = {"国語","数学","英語"};   String tensuu[][] = new String[subject.length][ninzuu];   System.out.println("点数を入力してください");   for(int i=0; i<subject.length; i++){    for(int s=0; s<ninzuu; s++){     System.out.print(name[i]+subject[]);     tensuu[i][s] = br.readLine();    }   }  } }

  • *を表示させるプログラムを

    //putChars()メソッドを呼ばず(使わず) for文のネストで、できますか import java.util.Scanner; class IsoscelesTriangleRB { //--- 文字cをn個連続表示 ---// static void putChars(char c, int n) { while (n-- > 0) System.out.print(c); } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.println("右下直角の三角形を表示します。"); System.out.print("段数は:"); int n = stdIn.nextInt(); for (int i = 1; i <= n; i++) { putChars(' ', n - i); // ' 'をn - i個表示 putChars('+', i); // '+'を i 個表示 System.out.println(); } } }

  • intではなくStringで・・・

    こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!

    • ベストアンサー
    • Java

専門家に質問してみよう