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

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

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

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

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

5回答

729閲覧

for文の中での配列の使い方

saaaki

総合スコア1

for

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

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/05/03 02:52

前提・実現したいこと

for文の中で配列を使う時、int i = 0でなければならないのかが知りたいです。

発生している問題・エラーメッセージ

該当のソースコード

for(int i = 1;i<n;i++){ System.out.print(", "+a[i]); }

試したこと

補足情報(FW/ツールのバージョンなど)

配列の問題を解いていた時に、全てfor(int i = 0だったので不安になり質問しました。

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

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

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

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

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

guest

回答5

0

ベストアンサー

何をしたいのかによります。

「先頭の要素から順番に処理したい」だと、先頭要素の添え字は0なので0から始めます。
「2番目の要素から順番に処理したい」だと、2番目の要素の添え字は1なので1から始めます。

「最後の要素から逆順に処理したい」だと、こうなります。

Java

1for(int i = n-1; i>=0; i--){

投稿2020/05/03 04:06

otn

総合スコア85901

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

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

0

配列のインデックスは0から始まるからです。
以下のコードではiが1から始まっているため初めのインデックスが表示されません。

Java

1for(int i = 1; i < n; i++){ 2 System.out.print(", " + a[i]); 3}

別に1から始めてもいいのですが、配列の要素をすべて表示したい場合は

Java

1for(int i = 1; i <= n; i++){ //最後の要素が表示されるように条件式を変更 2 System.out.print(", " + a[i - 1]); //ここで-1しないといけない 3}

というようにやや冗長になってしまいます。
そのため、配列の中身全部を扱うような処理をする場合、大抵は以下のようにi = 0から始めます。

Java

1for(int i = 0; i < n; i++){ 2 System.out.print(", " + a[i]); 3}

######訂正
2個目の条件式を訂正しました。

このようにミスが生じる可能性があるので配列の要素全部を扱う場合はi = 0にするのが無難ですね(^^;

投稿2020/05/03 03:40

編集2020/05/03 04:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Zuishin

2020/05/03 03:43

二番目の例で配列の要素すべてを表示できていませんね。
退会済みユーザー

退会済みユーザー

2020/05/03 03:46

あ、条件式が間違ってますね。 ご指摘ありがとうございます。
guest

0

例えば、要素がn個のxxx型配列「array」を定義したとき、
arrayはn個のxxx型領域を用意します。
それぞれの領域には

1個目のxxx型一つ分の領域:array[0]
2個目のxxx型一つ分の領域:array[1]


n個目のxxx型一つ分の領域:array[n-1]

としてアクセスします。

配列の全領域にアクセスしたい場合のfor文の()内は
配列の添え字の開始は 0なので、i=0
配列の添え字の終了は n-1なので、i<n
として、0 ~ n-1 の範囲でfor文が回るように記述します。

投稿2020/05/03 03:22

darudaru

総合スコア36

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

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

0

つぎのコードも研究してみてください。

for(String s : a){ System.out.print(", " + s); }

配列の添字を記載せずに、配列 a の中身をすべて表示できます。

投稿2020/05/03 04:51

katoy

総合スコア22324

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

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

saaaki

2020/05/06 01:36

調べてみたら拡張for文のことですね! ありがとうございます。
saaaki

2020/05/07 02:58

ありがとうございます。
guest

0

べつに1でも2でも3でもいいですが、
配列の添字の開始値は0なので、たいてい0になってますね

投稿2020/05/03 02:56

y_waiwai

総合スコア88042

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問