###前提・実現したいこと
1-100までの数値を生成し、1つのint型の配列にセットして、
配列を呼び出してセットした値を表示したいです。
java初心者なので、かみ砕いて説明頂けると助かります。
###該当のソースコード
public class Number100 { public static void main(String[] args) { int num[] = new int[100];//配列のサイズをセット for(int i=1;i<=100;i++){//100まで System.out.println(i);//いったん表示 } } }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
Java8 以降 限定
java
1IntStream.rangeClosed(1,100).toArray();
1以上100以下の数のIntStreamを作成し配列へ変換する。
類似に range
があるが 100未満となる
投稿2017/09/21 04:00

退会済みユーザー
総合スコア0
0
ベストアンサー
配列numは100個の要素で定義されている(0~99)のに、Whileを抜けた後に、num[101]にアクセスしているからエラーになっているものと思われます。
またWhile内ではnumには何も入れていないですねぇ。
Whileを抜けた後は、countにnumの何番目の値を入れたいのでしょうか?
numに1~100を入れたいだけという要望であれば、最後の処理は不要ですね。
つまりこんなんでよろしいかと。
(コメントの要望から修正しました)
Java
1public class Number100 { 2 public static void main(String[] args) { 3 int num[] = new int[100];//配列のサイズをセット 4 // 配列に代入 5 for(int i = 1; i <= 100; i++){ 6 num[i - 1] = i; 7 } 8 // 配列の値を出力 9 for(int i = 0; i < 100; i++){ 10 System.out.println(num[i]); 11 } 12 } 13}
投稿2017/09/21 02:59
編集2017/09/21 04:05総合スコア17000
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2017/09/21 04:01
2017/09/21 04:28

0
配列から勉強しなおしましょう。
java
1int num[] = new int[100];
こう宣言したnumで使える配列のインデックスは0~99で、0が入り、宣言した100より1少ない数まで使えます。
さらに、
java
1while(i<=100){//100まで 2 i++; 3 System.out.println(i);//いったん表示 4}
whileの条件を通るのはiが100以下の時で、100の時も通ります。そのあとi++
なんてやったらiが101で次の処理をすることになります。
おまけにこの間配列に格納する処理を一切行っていないため、配列内に目的の値を入れることができません。
投稿2017/09/21 02:47
総合スコア20675
0
問題点がいくつかあります。
A) "配列にセットしたい"はずなのに、配列の要素に代入しているコードが無い
配列 numに値をセットするのですから、 num[i]=x というようなコードが無いのはおかしいです。
プログラムの動作は、
1.まず、1~100の数値を配列numにセットする
2.配列numのデータを画面に表示して、動作を確認する
の2段階に分かれますから、それぞれのループ(forやwhile)が無いといけませんが、質問のコードには1つしかありません。
B) Javaでは配列のインデックスが0から始まることを忘れている。(swordoneさんから指摘されているので、詳細は略します)
こうした問題を修正すると、以下のようなコードになると思います。
public class Number100 { public static void main(String[] args) { int num[] = new int[100];//配列のサイズをセット // 配列に値をセットするループ(for構文を使いました) for (i=0:i<100;i++){ num[i]=i+1; // インデックス i は0~99だが、設定する値は1~100なので、+1している } // 配列の値を表示するループ (質問のコードを修正しました) int i=0;//インデックスが0から始まるので、初期値を0に変更しました。 while(i<100){//0から始まるので、100の手前(99)まで System.out.println(i);//いったん表示 i++; // indexを増やすのは、値を表示した後に(そうしないと、num[0]が表示されることがなくなる) } // int count =num[i]; //この行は何のため? 値の積算が欲しいなら count = count+byn[i]というコードを2つ目のループに入れないといけない。 また、countの値を表示するコードも必要 } }
投稿2017/09/21 03:11
総合スコア6919
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 11:07