B バイナンス · 世界最大級の暗号資産取引所バイナンス 登録 → AD OKX OKX · 世界の大手暗号資産取引所OKX 登録 → AD
💻 コーディングの基礎 · 第1講 / 10

プログラムとは — 仕事を順番・条件・繰り返しに分ける考え方

プログラミングとは難しい数式ではなく、やりたいことを、コンピューターが誤解しようのないほど小さくはっきりした手順に分けることです。その手順は、結局のところ順番・条件・繰り返しの三つでできています。

⏱ 約18分 ✍️ 確認問題 5問 🧪 コード実習 3題 更新 2026-10-09
🎯 この講義の学習目標
  • プログラムとアルゴリズムが何かを、身近な例で説明できる
  • 日常の作業を順番・条件・繰り返しに分けて、手順として書き出せる
  • どんな作業も入力・処理・出力に分けて考えられる
  • console.logで値を出力し、かんたんなエラーメッセージから行番号と原因を見つけられる

1.プログラム — コンピューターに渡す正確な指示書

プログラムとは、コンピューターがすべきことを順番に書いた指示書です。料理のレシピに似ていますが、大きな違いが一つあります。人はレシピに「塩少々」と書いてあっても自分で見当をつけますが、コンピューターは見当をつけません。書かれたとおりに、書かれた順番どおりにしか動きません。ですから、プログラムを書くということは、「うまくやってくれるだろう」という部分を一つも残さず、すべて言葉にして書くことです。

この「見当をつけない」性質は短所でもあり長所でもあります。指示が少しでも間違っていればとんでもない結果になりますが、指示が正しければ、百回でも百万回でも同じように、疲れることなく、速くやり遂げます。毎月Excelの表で同じ列を合計する、ファイル名を一つずつ変える、数百行のテキストで電話番号の書式をそろえるといった、人がやると退屈でミスしやすい作業こそ、プログラムの得意分野です。

最近は、AIのコーディングアシスタントに言葉で頼めばコードを代わりに書いてくれることもあります。だからといって、コーディングの基礎が要らなくなったわけではありません。AIが書いたコードが本当に望んだとおりに動くのか、見落としているケースはないのかを判断するには、コードを読めなければなりません。このコースの目標はプロの開発者になることではなく、かんたんなコードを自分で書き、他の人(またはAI)が書いたコードを読んで確かめられるようになることです(第10講)。

2.アルゴリズム的な考え方 — 順番・条件・繰り返しに分ける

ある問題を解くための手順のまとまりを、アルゴリズムといいます。名前はおおげさですが、私たちは毎日アルゴリズムを使っています。朝家を出るまでの流れ、買い物の順番、テストの採点のしかたは、どれもアルゴリズムです。プログラミングを学ぶことは、こうして頭の中で自然にやっていたことを、一つずつ取り出して書き出す練習でもあります。

驚くことに、ほとんどすべてのアルゴリズムは三つの材料でできています。一つ目は順番で、上から下へ順に行うことです。二つ目は条件で、「もし〜ならこうする、そうでなければああする」のように状況によって分かれることです(第3講)。三つ目は繰り返しで、同じことを決まった回数だけ、またはある条件になるまで繰り返すことです(第4講)。この三つを自由に組み合わせられれば、たいていの仕事は指示書に置き換えられます。

分けるときのコツは、「この手順を初めて見る人がそのとおりにできるか」と問うことです。「テストを採点する」では大きすぎます。「一つ目の答えを正解と比べる、同じなら点数に1を足す、次の答えに進む、最後の答えまで繰り返す」のように分けると、ようやく順番・条件・繰り返しが見えてきます。こうして見えてきた構造が、そのままコードの骨組みになります。

アルゴリズムの三つの材料
材料意味暮らしの中の例学ぶ講義
順番上から下へ順に行うお湯を沸かす → 麺を入れる → 3分待つ第1講
条件状況によって違うことをする雨が降っていれば傘を持ち、そうでなければそのまま出かける第3講
繰り返し同じことを何度も繰り返す答案の最後まで一問ずつ採点する第4講
例題「クラスの生徒30人の出席を確認し、欠席した生徒の数を数える」を、順番・条件・繰り返しが見えるように分けてみましょう。
  1. ステップ1 準備(順番):欠席数を0とし、名簿の一人目の生徒から始めます。
  2. ステップ2 確認(条件):今の生徒が席にいなければ、欠席数に1を足します。いれば何もしません。
  3. ステップ3 次へ進む(繰り返し):次の生徒に進んでステップ2を繰り返します。名簿の最後の生徒まで確認したら止まります。
  4. ステップ4 結果(順番):欠席数を知らせます。
  5. 検算:30人全員が出席なら欠席数は最初に決めた0のままで、全員が欠席なら30になります。両端のケースが合っていれば、分けた手順も信頼できます。
答え準備(欠席数0)→[生徒ごとに:いなければ1を足す]を最後の生徒まで繰り返す → 欠席数を知らせる

3.入力 → 処理 → 出力

アルゴリズムを外から見ると、いつも同じ形をしています。何かを受け取り(入力)、それを使って何かをし(処理)、結果を出します(出力)。電卓は数字と演算を受け取って計算し、画面に答えを表示します。スペルチェッカーは文章を受け取って誤りを見つけ、印を付けてくれます。初めてコードを書くときは、この三つの欄を先に埋めておくと、何を作ればよいかがずっとはっきりします。

特に大切なのは、入力をはっきりさせることです。「価格を計算する」とだけ言うと、何を受け取るのかが抜けています。「商品の価格と個数を受け取って合計を出す」と言えば、入力が二つであること、どちらも数であることがわかります。すると、「個数が0なら?」「価格がマイナスで入ってきたら?」といった問いが自然に続きます。こうした問いを前もって投げかける習慣が、第3講の境界値、第10講のAIコードの検証につながります。

このコースの練習場では、処理の結果をおもにconsole.logで出力します。第5講で関数を学ぶと、入力を「引数」で受け取り、出力を「戻り値」で返すやり方に移ります。形は変わっても、入力・処理・出力という枠組みはそのままです。

いろいろな作業を入力・処理・出力に分けた例
作業入力処理出力
買い物の合計商品の価格すべて足す合計金額
平均点点数の一覧足してから個数で割る平均
文字数を数える文章文字を一つずつ数える文字数
合否点数合格点と比べる合格または不合格

4.最初のコード — JavaScriptと`console.log`

このコースはJavaScriptで学びます。JavaScriptはどのWebブラウザにも実行環境が入っているので、何もインストールしなくてもすぐに動かせます。Webページを動かす言語として始まりましたが、今ではサーバー、自動化スクリプト、表計算ソフトの拡張機能などでも広く使われています。ここで学ぶ順番・条件・繰り返し・関数といった考え方は、他の言語に移ってもほぼそのまま通用します。

最初に覚える命令はconsole.logです。かっこの中に入れた値を、出力欄に1行で表示します。文字(文字列)はダブルクォートかシングルクォートで囲み、数はそのまま書きます。カンマで区切って複数の値を入れると、1行の中に空白をはさんで続けて表示します。計算式を入れると、計算した結果が出ます。

コードは上から下へ1行ずつ実行されます。ですからconsole.logを3行書けば、出力も3行が同じ順番で出てきます。これが、アルゴリズムの最初の材料である「順番」がコードに現れるいちばん単純な姿です。下のコードを練習場にそのまま書き写して実行し、数や文字を変えながら出力がどう変わるかを確かめてみましょう。

上から下へ1行ずつ実行されます
console.log("こんにちは");
console.log("コーディングの基礎コースです");
console.log(2026);
出力
こんにちは
コーディングの基礎コースです
2026
カンマで複数の値を入れると、空白でつないで出力します
console.log("りんご3個の値段:", 1200 * 3);
console.log("10 割る 4 =", 10 / 4);
console.log("名前", "ゆうき", "年齢", 20);
出力
りんご3個の値段: 3600
10 割る 4 = 2.5
名前 ゆうき 年齢 20
出力は結果を「見る」手段であるだけでなく、コードがどこまで実行されたかを確かめるいちばんかんたんな方法です。第8講で学ぶデバッグも、結局はconsole.logで値を追いかけるところから始まります。

5.文・コメント、そして最初のエラーを読む

コードの1行1行を文と呼び、JavaScriptでは文の終わりにセミコロン(;)を付けるのが慣例です。付け忘れてもたいていはうまく処理されますが、まれに意図と違う解釈をされることがあるので、このコースではいつも付けます。//の後ろに書いた文字はコメントで、実行されません。コメントは人が読むために残すメモで、「なぜこうしたのか」を書いておくと、あとで自分や同僚(そしてAI)がコードを理解するのに大いに役立ちます。

コンピューターは見当をつけないので、1文字間違えただけでも止まります。たとえばconsoleをconsolと書き間違えると、「そんな名前は定義されていない」というエラーになります。最初は赤いエラーメッセージが怖く感じられますが、エラーは、コンピューターがどこで何のために止まったのかを教えてくれる親切な案内です。メッセージにはふつう、エラーの種類、短い説明、行番号が含まれています。

下の例では、1行目は正常に出力され、2行目で止まります。エラーが起きた後の行は実行されないことにも注目してください。エラーメッセージの文言はブラウザによって少しずつ違うことがありますが、エラーの種類(ここではReferenceError)と行番号は同じ情報を伝えてくれます。エラーの種類ごとの読み方は第8講で詳しく扱います。

コメントは人のためのメモです
// コメントは実行されません
console.log("1行目"); // 行の終わりにも書けます
console.log("2行目");
出力
1行目
2行目
2行目で止まり、3行目は実行されません
console.log("ここまでは実行されます");
consol.log("打ち間違いのある行");
console.log("この行は実行されません");
出力
ここまでは実行されます
ReferenceError: consol is not defined
  • エラーメッセージを最後まで読む:種類(ReferenceErrorなど)→ 説明 → 行番号の順に見る
  • 行番号が指す行と、そのすぐ上の行をあわせて見る:かっこや引用符の付け忘れは前の行から始まっていることもある
  • 一度に一か所だけ直して、もう一度実行する:何か所もまとめて直すと、何が効いたのかわからない
  • つづりと大文字・小文字を確かめる:JavaScriptはConsoleとconsoleを別の名前として扱う

6.練習場の使い方

講義ごとに、いちばん下にコードの練習場があります。最初のコードにはやることがコメントで書かれていて、空欄を埋めて実行すると出力が表示され、採点を押すと期待した結果と比べてくれます。行き詰まったらまずヒントを見て、それでも難しければ解答例を見ましょう。ただし、そのまま写すのではなく、なぜそう書いたのかを1行ずつ確かめてから消し、自分でもう一度書いてみるのが、いちばん早く上達する方法です。

練習場のコードはみなさんのブラウザの中だけで、他のページから切り離された安全な空間(サンドボックス)で実行され、サーバーには送られません。そのため、console.logで出力する以外の、画面を書き換えたりインターネットに接続したりするコードは、練習場では動きません。うっかり終わらない繰り返しを作ってしまっても数秒で自動的に止まるので、思う存分試してかまいません。

練習場で何でも変えてみることを怖がらないでください。数を変え、行の順番を変え、わざと打ち間違えてみれば、エラーメッセージがどう変わるかがわかります。コーディングは読むだけでは上達しません。自分で実行して、間違えてみることで上達します。

AIのコーディングアシスタントからコードを受け取ったら、すぐに使わず、練習場のような安全な場所でまず実行してみましょう。出力が自分の予想と同じかどうかを確かめることが、検証の第一歩です。

📌 要点まとめ

  • プログラムは、コンピューターが見当をつけずにそのまま従う正確な指示書である
  • ほとんどすべてのアルゴリズムは、順番・条件・繰り返しの三つの材料の組み合わせである
  • 仕事を分けるときは、初めて見る人がそのとおりにできるほど小さく分ける
  • どんな作業も入力・処理・出力に分けてみると、作るものがはっきりする
  • console.logで値を出力し、エラーメッセージは種類・説明・行番号の順に読む

✍️ 確認問題

まず自分で解いてから「解答と解説」を開いてください。

Q1. アルゴリズムを形づくる三つの基本の材料として正しいものはどれでしょうか。

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ① 順番・条件・繰り返し

ほとんどすべてのアルゴリズムは、順に行う(順番)、状況によって分かれる(条件)、繰り返す(繰り返し)の組み合わせです。変数・関数・オブジェクトは、それをコードで表すための道具です。

Q2. 次のコードの出力はどれでしょうか。console.log("合計:", 2 + 3);

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ② 合計: 5

計算式2 + 3は先に計算されて5になり、カンマで入れた二つの値は空白一つをはさんで出力されます。文字列は引用符なしで表示されます。

Q3. 3行のコードで、2行目に打ち間違いがありエラーになりました。正しい説明はどれでしょうか。

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ② 1行目は実行され、2行目で止まり、3行目は実行されない

コードは上から下へ実行され、エラーが起きたところで止まります。その前の行はすでに実行されていて、後ろの行は実行されません。

Q4. 「商品の価格と個数を受け取って合計を出力する」で、入力にあたるものはどれでしょうか。

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ③ 商品の価格と個数

入力は受け取る値(価格・個数)、処理は掛け算、出力は合計です。

Q5. // メモ のように//の後ろに書いた文字は何で、どう扱われるでしょうか。

解答と解説
解答例 コメントであり、実行されない

コメントは人が読むために残すメモです。実行環境は//からその行の終わりまでを無視します。なぜそう書いたのかを残しておくと、あとでコードが読みやすくなります。

🧪 コード実習

console.logだけを使って出力を合わせる練習です。出力は1行ずつ、期待する出力と比べます。

コードはこのブラウザの中の隔離された場所でだけ実行され、サーバーには送られません。ネットワークには接続できず、2秒を超えると止まります。書き換えたコードはこのブラウザにだけ保存されます。Ctrl+Enter(⌘+Enter)で実行、Tabキーは空白2つ(Escの後のTabで次へ移動)。

JavaScriptが無効なので実行はできませんが、問題・最初のコード・自動チェックの内容・解答例はそのまま読めます。

13行を出力する

console.logを3回使って、次の3行を順番に出力してください:こんにちは / コーディングの基礎 第1講 / 準備完了

期待される出力
こんにちは
コーディングの基礎 第1講
準備完了
💡 ヒント

文字はダブルクォートで囲み、行の終わりにセミコロンを付けます。1行にconsole.log一つずつです。

解答例を見る
console.log("こんにちは");
console.log("コーディングの基礎 第1講");
console.log("準備完了");

2入力 → 処理 → 出力:レシート

仮の買い物です。牛乳を2,500ウォンで2本、パンを3,000ウォンで1個買いました。計算はコードに任せて、次のように3行を出力してください:牛乳: 5000 / パン: 3000 / 合計: 8000。数を直接書かずに、2500 * 2のように計算式を使ってください。

期待される出力
牛乳: 5000
パン: 3000
合計: 8000
💡 ヒント

カンマでつないだ二つの値は、空白一つでつながります。掛け算は*で、掛け算は足し算より先に計算されます。

解答例を見る
// 牛乳 2500ウォン x 2本、パン 3000ウォン x 1個
console.log("牛乳:", 2500 * 2);
console.log("パン:", 3000 * 1);
console.log("合計:", 2500 * 2 + 3000 * 1);

3順番を正す

インスタントラーメンを作る手順がばらばらになっています。行の順番だけを入れ替えて、ステップ1からステップ5まで順に出力されるようにしてください。文字は直さないでください。

期待される出力
1. 鍋に水を入れる
2. お湯を沸かす
3. 麺とスープの素を入れる
4. 3分待つ
5. 器に盛る
💡 ヒント

コードは上から下へ実行されます。先にやるべきことが上に来るように、行を移しましょう。

解答例を見る
console.log("1. 鍋に水を入れる");
console.log("2. お湯を沸かす");
console.log("3. 麺とスープの素を入れる");
console.log("4. 3分待つ");
console.log("5. 器に盛る");

🤖 AIにはこう聞いてみましょう

コピーして [ ] の部分を自分の状況に書き換えて使います。答えはそのまま信じず、本文と比べて確かめましょう。

日々の作業をアルゴリズムに分けてみたいとき

私が毎週している[作業の説明]を、初めて見る人がそのとおりにできるように手順に分けてください。それぞれの手順が順番・条件・繰り返しのどれにあたるかを示し、入力と出力を別に書いてください。まだコードは書かずに、私が見落としているケース(たとえばデータが空のとき)があれば質問してください。

初めてエラーメッセージに出会ったとき

私はJavaScriptを学び始めたばかりです。下のエラーメッセージを種類・意味・行番号に分けてやさしく説明してください。直したコードをすぐに渡すのではなく、自分で見つけられるように、まず確認すべき場所を教えてください。コード:[コードを貼り付け] エラー:[エラーメッセージを貼り付け]

練習問題がもっと欲しいとき

JavaScriptの`console.log`だけで解ける、とてもやさしい練習問題を5つ作ってください。問題ごとに期待する出力を正確に書き、正解のコードは伏せておいて、私が答えを送ったら1行ずつ比べて教えてください。

🧰 関連ツール

この講義で扱ったJSON・正規表現・テキストを、その場で確かめたり整えたりできるツールです。本物の個人情報やパスワードは貼り付けないでください。

参考
  • MDN Web Docs — JavaScriptガイドの文法とデータ型・console のドキュメント
  • プログラミング入門の教材で扱われる、アルゴリズム(順次・選択・反復)と入力・処理・出力モデルの一般的な内容

学習目標をすべて達成できたら完了を押しましょう。

💻 コーディングの基礎

  1. 1プログラムとは — 仕事を順番・条件・繰り返しに分ける考え方
  2. 2値・変数・データ型 — 名札を付けて値を扱う
  3. 3条件分岐 — 状況によって違う道を進む
  4. 4繰り返し — 同じことを正確に何度もさせる
  5. 5関数 — 名前を付けた小さな機械に分ける
  6. 6配列とオブジェクト — データを入れて扱う
  7. 7文字列とテキスト処理 — 文字を切り出し、探し、置き換える
  8. 8デバッグとエラーの読み方 — 赤い文字を手がかりに変える
  9. 9かんたんな自動化の例 — 表の計算とテキストの整理をコードで
  10. 10AIが書いたコードを読んで検証する — テスト・セキュリティ・ライセンス・個人情報
📚 あわせて読みたい
📊表計算の作業を人工知能で手伝わせる、数式は必ず検証→ 💻人工知能のコーディング支援の使い方と危険、セキュリティとライセンス→ 💬外国語の会話練習相手としてAIを使う→ ⚙️業務自動化のアイデア探し、AIに任せる仕事の選び方→
← AI時代の基礎学力講座