質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1008閲覧

Javaの配列をfor文について

megumi.

総合スコア7

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

2クリップ

投稿2020/05/15 09:24

配列を取り出すためのfor文でプロゲートでは
int[]={1,3,5};の様に教わりましたが、しかし
Java for文で検索すると score[]=new int[5];のような文が出てくるんです。両者はどう違うのか、どちらが使用されることが多いのか教えてください。ちなみにプロゲートは無料のしかやってません

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/15 09:31

forは例示されたものだけではないですけど、どこの何を見たのでしょう。 現状だと「要件にあわせて適切に使い分けて実装する」くらいしか答えようがないです。 あくまで手段のひとつでしかないですからね
megumi.

2020/05/15 09:37

配列を取り出すためのfor文と検索したら出てきました。プロゲートの知識しかないので混乱するんです
yamap55

2020/05/15 09:44

何を聞きたいのかよくわからないです。「int[]={1,3,5};」と「score[]=new int[5];」の違い?でもこの場合for文は関係ないですよね? ちなみに、この記載自体が間違っていますので、聞きたい事は「int[] score={1,3,5};」、「int[] score=new int[5];」の違いという事でしょうか?
megumi.

2020/05/15 09:52

ごめんなさい。逆でした。for文で取り出したい配列の違いがプロゲートと違っていてわからないんです
hoshi-takanori

2020/05/15 11:09

プロゲートは Java の文法を全て教えてくれるわけではないので、ちゃんとした入門書を買って勉強することをお勧めします。
guest

回答2

0

あなたの疑問はfor文云々は関係なく、配列の作成、初期化の方法の話なので、それを勉強し直してください。

投稿2020/05/15 14:23

swordone

総合スコア20669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

int[]={1,3,5};の様に教わりましたが、しかし

Java for文で検索すると score[]=new int[5];のような文が出てくるんです。両者はどう違うのか

int[] score=new int[5] は score = new int[0,0,0,0,0]; {0,0,0,0,0};と同じです。

配列を生成時に値のリストが、わかっているなら、int[]={1,3,5};のように定義します。
値の個数、内容が動的(可変)の場合、

java

1int n = 入力値の個数; 2int[] score = new int[n]; 3for(int i = 0; i < n; i++) { 4 score[i] = 入力値; 5} 6

for文で取り出したい配列の違い

配列の定義の仕方(初期値の指定方法)の違いだけで、取り出し方や内容自体は変わりません。

以下scoreA~Cは、同じものです。

java

1int[] scoreA = {0, 1, 2, 3, 4}; 2 3int[] scoreB = new int[5]; // {0, 0, 0, 0, 0}と同じ 4scoreB[0] = 0; // デフォルトで、0が設定されるためなくても変わらない 5scoreB[1] = 1; 6scoreB[2] = 2; 7scoreB[3] = 3; 8scoreB[4] = 4; 9 10int[] scoreC = new int[5]; 11for(int i = 0; i < scoreC.length; i++) { 12 scoreC[i] = i; 13} 14

投稿2020/05/15 11:42

編集2020/05/15 11:52
momon-ga

総合スコア4826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/15 11:47

score = new int[0,0,0,0,0]; これおかしくね
momon-ga

2020/05/15 11:50 編集

ほんとだw 直します。
megumi.

2020/05/15 12:40 編集

momon-gaさん、ありがとうございます。分かっているか確認します。まず、私が知っているint[]numbers={1,3,5};は配列の中身も数もわかっているもの。そして、中身を指定したいもの。 int[]scoreB=new int[5];は中身が0~ 4とわかっているもの。 int[]scorec= new int[5]も同じ という理解でよいでしょうか?
momon-ga

2020/05/16 21:39

scoreA~Cのどれも数も中身もわかっている書き方です。 通常はscoreAの書き方を使うことが多いと思います。 scoreCは数が多い場合のケアレスミスの防止や、そもそも大量の初期化を書きたくない場合は ループを使う人が多いと思います。
YT0014

2020/05/18 11:48

scoreBの理解が間違っています。 new int[5]は、5個の配列が欲しい場合で、通常は、後で値を設定します。 設定しない状態では、すべて、0が入っています。 例示されたソースでは、後から、0~4を設定しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問