Day15 ウォームアップ(10分)

広告

※10分の使い方は、「進め方(10分の使い方)」を参照
※生成AIは使いません
※全部できなくてOK
※昨日より1行多く書けたら成功です


今日の準備(ウォームアップの前に)

  1. Day15.cs を追加する(ソリューションエクスプローラーで、ソリューションの下にある プロジェクト「MiniPractice」を右クリック → 追加 → クラス → 名前を Day15.cs
  2. Program.cs を開き、Main 内の Day14.Run() を Day15.Run() に書き換える

0) 開始30秒:骨格チェック(全員)

次の形になっているかだけ確認します。

internal class Day15
{
    public static void Run()
    {
        // ここに書く
    }
}
  • 処理は必ず Run() の { } の中 に書きます

🔹 今日のルール

今日は Day15.cs を追加します。Day15.cs はソリューション内の 15番目のファイル(クラス) になります。 その Run メソッドの { } の中に、すべてのコードを書いてください。

  • Run 以外のメソッドは作りません
  • 今は「形を揃える」時間です。中身より形を優先します

🔹 Day14 の振り返り(1分)

  • 個数を数えたあと … count を増やしたら、ループのに Console.WriteLine(count); を1回書きます(忘れると結果が見えません)。
  • 「以上」と「未満」 … 「80以上」は >= 80、「60未満」は < 60 です。問題の言葉と演算子をそろえましょう(> 80 や <= 60 で別の意味になります)。
  • 発展:表示の順序 … 条件に合うを list.Add(scores[i]) で入れたら、foreach で各値を1行ずつ表示し、合計(sum)の表示はループの外で1回にします(ループの中で合計を何度も表示しない)。

進め方(10分の使い方)

  • 最初の5分:教科書・ノート・これまで自分が書いたコードも見ずに、自分の力だけで書いてみましょう。止まっても構いません。思い出そうとする時間が大事です。
  • 後半5分:教科書・ノート・これまで自分が書いたコードを見てOKです。「どこを見ればよいか」「どう直せばよいか」を考えながら、完成に近づけましょう。

提出ルール(重要)

  • 提出A(最低ライン):問題1だけ動けばOK
  • 提出B(標準):問題1・2まで
  • 提出C(到達):問題1・2・3(余裕があれば発展)

※今日も「全部できる」より「動く形にそろえる」が目的です。

  • 提出方法:GitHub Desktop で Commit → Push してください。1問解くごとにコミットすると講師が確認しやすいです(まとめて1回でもOK)。講師は GitHub でコードを確認します。
  • Slack:「Day15 完了しました」と一言送ってください(講師が確認のタイミングを把握するため)。

■ 問題1(基礎)

次の配列があります。

string[] colors = { "赤", "青", "緑", "黄", "白" };

この配列の要素を、foreach を使って1つずつ表示してください。


■ 問題2(配列+条件の組み合わせ)

次の配列があります。

string[] nicknames = { "太郎", "花子", "ジロー", "アン", "サクラ" };

名前が ちょうど2文字 のものだけを表示してください。

ヒント:if (name.Length == 2) のように、各要素の文字数を調べます。foreach の変数名は name でも nickname でも構いません。配列名(例:nicknames.Length)は要素の個数であり、各名前の文字数ではありません。


■ 問題3(少し思考)

次の配列があります。

int[] scores = { 58, 60, 82, 45, 90, 59 };

この配列のうち、60未満の要素がいくつあるかを数え、個数だけを1行で表示してください。

ヒント:int count = 0; をループのに置き、for は for (int i = 0; i < scores.Length; i++) です。「60未満」は if (scores[i] < 60)のとき count++; とします。ループのに Console.WriteLine(count); を1回書きます。


■ 発展(余裕がある人)

上の scores 配列のうち、80以上の値だけを Listに追加し、次の順序で表示してください。

  1. 追加した各値を foreach で1行ずつ表示する
  2. そのあと、それらの値の合計1回だけ表示する(ループの外で Console.WriteLine(sum);

ヒント:var list = new List<int>(); で初期化し、for 内で if (scores[i] >= 80) のとき list.Add(scores[i]); とします。格納するのは scores[i](点数)です。list.Add(i) はインデックスになってしまいます。問題3と発展を1つの for で count・list を同時に処理してもOKです(合計用の sum は、リストに入れたあと別の foreach で足してもよいです)。


⚠️ よくある誤り(Day15 で想定)

  • 配列名と要素の Length … 条件では foreach の変数(例:name.Length)を使います。nicknames.Length は名前の数(5)です。
  • 60未満 … < 60 です。<= 60 は「60以下」になり、60点も含まれます。
  • 80以上 … >= 80 です。> 80 だとちょうど80点が含まれません。
  • count の表示 … ループのに Console.WriteLine(count); を必ず書きます。
  • 発展:合計の表示 … sum を Console.WriteLine するのは、各値を出し終わったあと1回です。
  • foreach のセミコロン … foreach (int n in list) ; とするとループ本体が空になります。{ } の中に Console.WriteLine(n); を書きます。

🎯 今日の目的

  • foreach の形を思い出せる
  • 配列全体の Length と、各文字列の Length を混同しない
  • 「未満」と「以上」に合う比較演算子を選べる
  • 個数を数えたら必ず1行表示できる
  • 発展:List に入れて各値を表示し、合計は最後に1回表示できる

次へ

訪問数 14 回, 今日の訪問数 14回

広告

C#

Posted by hidepon