004-001-006

配列の基本:お気に入りアイテムリスト

中級

問題説明

【解説】

この問題では: String型の配列を宣言して3つの文字列要素を代入し、forループを使って全要素を「Item N: 値」の形式で標準出力に表示するプログラムを作成します。

🎯 問題の概要

この問題では、配列という重要なデータ構造の基本を学びます。配列は、同じ型の複数のデータを1つの変数名でまとめて管理できる「入れ物」のような存在です。実際の開発では、リストやコレクションの管理に必須の概念となります。

📚 前提知識の確認

この問題を解くために必要な基礎知識:

  • 変数の宣言と代入:int型やString型の変数を作る方法
  • forループ:繰り返し処理の基本構文
  • インデックスの概念:0から始まる番号で要素を識別すること

💡 解法のポイント

1. 配列の宣言と初期化

配列を使うには、まず宣言が必要です:

String[] items = new String[3];  // 3つの要素を持つString配列
```java
この時点で、配列には3つの「空の箱」が用意されます。

### 2. **配列要素への代入**
インデックス(0から始まる番号)を使って、各要素に値を代入します:
```java
items[0] = "First";   // 1番目の要素
items[1] = "Second";  // 2番目の要素
items[2] = "Third";   // 3番目の要素
```java
注意:インデックスは0から始まるため、3要素の配列は0, 1, 2でアクセスします。

### 3. **配列の長さ**
配列には「length」プロパティがあり、要素数を取得できます:
```java
items.length  // この場合は3
```java
これを使うことで、配列のサイズを変更しても同じコードが動きます。

## 📖 コード解説(ステップバイステップ)

### ステップ1: 配列の宣言
```java
String[] items = new String[3];
```java
この行で、String型の要素を3つ格納できる配列を作成します。この時点では、各要素はnull(空)の状態です。

変数名の前にある「[]」が配列であることを示しています。「new String[3]」の部分で、実際にメモリ上に3つ分の領域を確保しています。

### ステップ2: 配列への値の代入
```java
items[0] = "The Great Gatsby";
items[1] = "1984";
items[2] = "To Kill a Mockingbird";
```java
インデックスを使って、配列の各位置に値を代入しています。配列のインデックスは常に0から始まることに注意してください。これはJavaだけでなく、多くのプログラミング言語で共通のルールです。

実行後の配列の状態:
- items[0] → 「The Great Gatsby- items[1] → 「1984- items[2] → 「To Kill a Mockingbird」

### ステップ3: forループによる配列の走査
```java
for (int i = 0; i < items.length; i++) {
    System.out.println("Item " + (i + 1) + ": " + items[i]);
}
```java
forループを使って、配列の全要素を順番に処理します。

- **初期化**:`int i = 0` - カウンタ変数iを0から開始
- **条件**:`i < items.length` - iが配列の長さ未満の間繰り返す
- **更新**:`i++` - ループごとにiを1増やす

ループ内では、`(i + 1)`として表示番号を1から始めています。これは、インデックスは0始まりですが、人間にとっては「1番目、2番目」と数える方が自然だからです。

### ステップ4: 文字列の連結と出力
```java
System.out.println("Item " + (i + 1) + ": " + items[i]);
```java
この行では、複数の文字列を「+<a href="https://javadrill.tech/problems/003">演算子</a>で連結しています:
-Item 」という固定文字列
- (i + 1)で計算した番号
-: 」という区切り文字
- items[i]で取得した配列の要素

これらを組み合わせて、「Item 1: The Great Gatsby」のような形式で出力します。

## ⚠️ よくある間違い

### 1. **配列のインデックスを1から始めてしまう**
```java
// 誤った例
items[1] = "First";  // これは2番目の要素です
items[2] = "Second";
items[3] = "Third";  // エラー:配列の範囲外
```java
**理由**Javaの配列インデックスは0から始まります。3要素の配列なら0, 1, 2が有効なインデックスです。

**正しい書き方**:
```java
items[0] = "First";   // 1番目
items[1] = "Second";  // 2番目
items[2] = "Third";   // 3番目
```java

### 2. **配列の長さを直接数値で書いてしまう**
```java
// 推奨されない例
for (int i = 0; i < 3; i++) {  // 3が固定値
```java
**理由**:配列のサイズが変わったときに、この数値も変更する必要があります。変更漏れがバグの原因になります。

**正しい書き方**:
```java
for (int i = 0; i < items.length; i++) {  // 配列の実際の長さを使用
```java

### 3. **配列を初期化せずに使おうとする**
```java
// 誤った例
String[] items;
items[0] = "First";  // エラー:配列が初期化されていない
```java
**理由**:配列は宣言しただけでは使えません。必ず初期化(メモリ確保)が必要です。

**正しい書き方**:
```java
String[] items = new String[3];  // 初期化してから使う
items[0] = "First";
```java

## 🚀 発展的な内容

さらに学習を深めるためのヒント:

### より効率的な初期化方法
配列の宣言と同時に値を設定できます:
```java
String[] items = {"The Great Gatsby", "1984", "To Kill a Mockingbird"};
```java
この書き方なら、サイズ指定も個別の代入も不要です。

### 拡張forループ(for-each)
Java 5以降では、より読みやすい記法があります:
```java
int index = 1;
for (String ite

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

入力:
期待される出力:
Item 1: The Great Gatsby
Item 2: 1984
Item 3: To Kill a Mockingbird
入力:
期待される出力:
Item 1: The Great Gatsby
Item 2: 1984
Item 3: To Kill a Mockingbird
入力:
期待される出力:
Item 1: The Great Gatsby
Item 2: 1984
Item 3: To Kill a Mockingbird
入力:
期待される出力:
Item 1: The Great Gatsby
Item 2: 1984
Item 3: To Kill a Mockingbird
入力:
期待される出力:
Item 1: The Great Gatsby
Item 2: 1984
Item 3: To Kill a Mockingbird
❌ テストに失敗したケースがあります
❌ エラー発生

あなたの解答

現在のモード: 自分のコード
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください

sc.close();
}
}
0 B / 5 MB

残り 9 回実行可能