C#でつまずくポイントを理解しよう
〜変数・if文・for文・配列で何が難しいのか〜

C#の学習を始めると、
- 変数は分かったと思ったのにif文で止まる
- for文になると急に難しく感じる
- 配列が出てきたら何をしているのか分からなくなる
ということがあります。
しかし、これは珍しいことではありません。
プログラミングでは、前の考え方を土台にして次の考え方を作っていきます。
今回は、特に多くの人がつまずく3つの段階を確認します。
1. 変数の意味がまだ曖昧な場合
変数は「名前付きの箱」
例えば、
int price = 1000;
というコードがあります。
これは、
price
┌─────────┐
│ 1000 │
└─────────┘
という箱を作っているイメージです。
int→ 整数を入れる箱の種類price→ 箱につけた名前1000→ 箱の中身
です。
変数が理解できると、値の変化が追えます
例えば、
int price = 1000;
price = 1500;
の場合、
最初は、
price
┌──────┐
│1000 │
└──────┘
ですが、
2行目を実行すると、
price
┌──────┐
│1500 │
└──────┘
になります。
ここで大切なのは、
数学の「=」とは違うということです。
数学では、
1 + 2 = 3
のように「左右が同じ」という意味です。
プログラムでは、
price = 1500;
は、
priceという箱に1500を入れる
という命令です。
2. if文で混乱する場合
if文は、
「条件によって処理を変える仕組み」
です。
例えば、
int score = 80;
if(score >= 60)
{
Console.WriteLine("合格");
}
の場合、
プログラムは次のように考えます。
scoreの中身を見る
↓
80は60以上?
↓
YES
↓
「合格」と表示
if文で大切なのは「条件式」
よく出てくる記号があります。
| 記号 | 意味 |
|---|---|
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
== | 等しい |
例えば、
score >= 60
は、
「scoreは60以上ですか?」
という質問です。
よくある間違い
if(score = 60)
これは間違いです。
理由は、
= は代入だからです。
scoreに60を入れる
という意味になります。
比較するときは、
score == 60
です。
3. 配列で混乱する場合
変数は1つのデータを入れる箱でした。
例えば、
int score = 80;
なら、
score
┌────┐
│80 │
└────┘
です。
しかし、テストの点数が10人分あったらどうでしょう。
int score1 = 80;
int score2 = 90;
int score3 = 70;
と書くのは大変です。
そこで配列を使います。
配列は「たくさん入るロッカー」
int[] scores = {80,90,70};
これは、
scores
┌────┬────┬────┐
│ 80 │ 90 │ 70 │
└────┴────┴────┘
0 1 2
というイメージです。
番号(添字)を使って取り出します。
Console.WriteLine(scores[0]);
結果:
80
になります。
3つの関係を整理する
プログラミングの理解は、次の順番で深まります。
変数
↓
1つのデータを扱う
if文
↓
条件によって処理を変える
for文
↓
同じ処理を繰り返す
配列
↓
複数のデータをまとめて扱う
つまずいたときの確認ポイント
変数で困ったら
確認すること:
- この箱の名前は何か?
- 中身は何か?
- 今、中身はいくつになっているか?
if文で困ったら
確認すること:
- 何を比較しているか?
- 条件は「はい」か「いいえ」か?
- 条件を満たした場合、どの処理が動くか?
配列で困ったら
確認すること:
- 配列全体の名前は何か?
- 何番目のデータを使っているか?
- 添字は0から始まることを理解しているか?
まとめ
C#学習では、
「文法を覚える」
だけではなく、
「コンピュータの中で何が起きているかをイメージする」
ことが重要です。
最初は、
変数
↓
条件分岐
↓
繰り返し
↓
配列
の流れを何度も確認してください。
この土台ができると、その後に学ぶ、
- メソッド
- クラス
- オブジェクト指向
も理解しやすくなります。








ディスカッション
コメント一覧
まだ、コメントがありません