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

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

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

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

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

Q&A

4回答

3063閲覧

for文を使い、配列の各要素の値を逆順に表示したいんですがどうしてもエラーがでますどこを直せばいいか教えてください

ado72

総合スコア4

for

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

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

0グッド

1クリップ

投稿2020/02/03 15:48

勉強始めたばっかのものです
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
void Start () {

int[] array = new int[5]; array [0] = 10; array [1] = 90; array [2] = 90; array [3] = 70; array [4] = 20; for (int a = 0; a < 5; a++) { Debug.Log (array [a]); } for (int b = 4; b < 5; b--){ Debug.Log (array [b]); } } void Update () { }

}

for文を使い、配列の各要素の値を順番に表示してください
for文を使い、配列の各要素の値を逆順に表示してください

という課題をしてるんでが
10,90,90,70,20,20,70,90.90.10とコンソールにでて最後に
IndexOutOfRangeException: Array index is out of range.
Test.Start () (at Assets/Test.cs:20)
というエラーが出るんですがどうすればいいですか?

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

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

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

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

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

guest

回答4

0

エラーが出るんですがどうすればいいですか?

とのことですので,やるべきことを以下にかいつまんで書きました.

まず,

Array index is out of range

とか言われたら,まずこれを読みましょう.
問題は「配列indexが範囲外」とのことです.
("配列index"ってなんだよ? という場合には「配列index」とか「配列 index」とか,あるいは原文のまま「Array index」だとかでググってみたりしましょう.あるいは"Array index is out of range"を丸ごとググるとかでもエラーの意味に関する情報を見つけられるかもしれません.)

さらに,

Test.cs:20

として,問題が発生した場所(Test.csの20行目)も表示されていますので,そこを見ましょう.
(おそらく,その行とはDebug.Log (array [b]);と書いてある行でしょう.)

以上から,bが範囲外の値になってしまうのだと判断がつきます.
そうしたら,あとは,bの値というのが実際にはどんな値になっているのか(何故範囲外になってしまうのか)を調べましょう.

bの値を決めているのはfor (int b = 4; b < 5; b--)という記述ですから,一度冷静になって,この記述だとbの値がいくつから始まって,どのように変化していくのかを考えましょう.
(最初は4で,次は3で,その次は2で… 果たしていくつまでいくのか?)

…で,なんやかんやで最終的には他の方の回答内容にたどり着く感じで.

投稿2020/02/04 01:21

fana

総合スコア11904

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

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

0

デバッグ実行、ブレークポイントを利用して1ステップずつ確認してみましょう。

投稿2020/02/04 01:55

workaholist

総合スコア559

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

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

0

条件分が間違っていると思います。

for (int b = 4; b >= 0; b--){
Debug.Log (array [b]);
}

投稿2020/02/03 16:00

kamikaze.cappa

総合スコア558

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

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

0

forの意味 (int i=最初の値; iがいくつの間繰り返すか; i増やす/減らす)

→for (int b = 4; b < 5; b--){
bが5より小さい間、bを4から減らす...止まりませんね。

投稿2020/02/04 10:46

mike

総合スコア118

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問