【初心者C#】paiza問題集Dランク

※自分の備忘録用。

プログラミング問題の回答がなく行き詰まったので、ChatGptに回答してもらった。

using System;

class Program
{
    static void Main()
    {
        // 1行目で整数 N を読み込む
        int N = int.Parse(Console.ReadLine());
        
        // N 行の整数を格納する配列を作成
        int[] a = new int[N];
        
        // 2行目以降で整数を読み込む
        for (int i = 0; i < N; i++)
        {
            a[i] = int.Parse(Console.ReadLine());
        }
        
        // a_1, ..., a_N を改行区切りで出力
        foreach (int num in a)
        {
            Console.WriteLine(num);
        }
    }
}
プログラムの説明
Console.ReadLine()を使って最初の行から整数Nを読み込みます。
N個の整数を格納するための配列aを作成します。
forループを使って、次のN行から整数を読み込んで配列に格納します。
最後に、foreachループを使って配列の各整数を改行区切りで出力します。
このプログラムを実行すると、指定された形式で出力されます。

forループとforeachループの使い方の違いがわからなかったので、更に質問。

◆質問
c# forループとforeachループの違いを教えて

◆ChatGPT回答
forループは、インデックスを使用してコレクションの要素にアクセスするため、
ループの初期化、条件、更新を制御できます。
一方、foreachループはコレクションの各要素を直接反復処理するため、
より簡潔で可読性が高いですが、インデックスに直接アクセスすることはできません。
forは任意のカスタムループが必要な場合に便利で、
foreachはコレクションの全要素を処理する際に最適です。

カタカナが多くてよくわからない。
初学者でもわかるように説明してもらうため質問の方法を少し変更。

◆質問
c# forループとforeachループの違いを小学生でもわかるように教えて

◆ChatGPT回答
forループは、数字を使って「何回繰り返すか」を自分で決める方法だよ。
たとえば、1から10まで数えたいときに使う感じ。
逆に、foreachループは、箱の中にあるおもちゃを一つずつ取り出して遊ぶみたいに、
箱の中のものを全部自動で取り出してくれる方法だよ。
どちらも役立つけど、使い方が少し違うんだ!

なるほど!わかりやすい。ありがとうChatGPT!

今回の問題はループ処理と配列を組み合わせた問題だった。
ですが、配列学習動画の前のテキストにあったので配列使わずできるのでは?と思い再び質問。

using System;

class Program
{
    static void Main()
    {
        // 1行目で整数 N を読み込む
        int N = int.Parse(Console.ReadLine());
        
        // 2行目以降で整数を読み込み、すぐに出力
        for (int i = 0; i < N; i++)
        {
            int num = int.Parse(Console.ReadLine());
            Console.WriteLine(num);
        }
    }
}

プログラムの説明
最初の行で整数Nを読み込みます。
forループを使って、次のN行から整数を読み込み、読み込むたびに即座に出力します。

こっちのほうが断然シンプルだ。

わからなかった、覚えていなかったところ。

int N = int.Parse(Console.ReadLine());

Console.ReadLine()は文字列を返すため、整数に変換する場合はint.Parse(Console.ReadLine())と書く必要がある。

この記事が気に入ったらサポートをしてみませんか?