条件分岐の基本

第4回 アルゴリズム概論

2026.04.30

まずはセットアップ

今日の土台を整えます

準備

今日の準備でやること

  1. デスクトップの algorithm2026/ フォルダを開く
  2. このページをクリックして開き、関連資料の箇所から 04_20260430_data.zip をダウンロード
  3. ダウンロードしたフォルダをalgorithm2026/ に移動し、展開・解凍して配置 → 04_20260430_dataフォルダが作成される
  4. VSCode で 04_20260430_data フォルダを開く
  5. lesson/index.html右クリック→Live Server で表示
  6. 普段使っている AIツールをブラウザで開いておく
準備のゴール

最終的に、Chrome に以下のように表示されればOK

準備が完了したときの Chrome 画面
冒頭確認

Live Server を「プライベートモード」で開く設定にしましょう

VSCode の設定を1か所だけ変えます。

Live Server の Custom Browser 設定で chrome:PrivateMode を選んだ画面
  1. VSCode の 設定 を開く
    (Mac は Cmd + ,
  2. 上の検索欄に live server custom browser と入れる
  3. Custom Browser の選択肢から chrome:PrivateMode を選ぶ

はじめに

今日の軸

テクノロジー = コンピューターへの "お願い"

今、みなさんは何をやっているのか?実はこれだけです!

みなさんは「コンピューターに色々なお願いをしている」

色々なものを学んでいきますが、 やりたいことをしっかり言語化できれば
色々なことができるようになって、それこそAIとも仲良くなれます!

今日の流れ

4つの段階で進める

  1. 完成見本を触ってみる
    どんなアプリか、まずは体験
  2. 動きを日本語で書き出す(言語化)
    「もし〜なら、〜する」の形で
  3. 日本語を JavaScript に翻訳する
    if/else if/else に当てはめる
  4. 自分のアプリを作る(課題)
    同じやり方で、自分のアイデアを形に

ブレインストーミング

サンプルアプリを、自分の言葉で言語化してみる

サンプルアプリ

サンプルアプリ — お天気アドバイザー

気温を入れると、その日のおすすめの服装を教えてくれるアプリです!
まずは以下の画像をクリックし、サンプルアプリの動きを確認してください!

お天気アドバイザーの動作デモ

「服装をチェック」はボタンです!

入力される気温によって、表示される内容が変わることを確認してください!

ワーク

サンプルアプリで起きていることを、順番に書き出そう

まずはアプリを触りながら、画面で起きていることを順番に書き出してみましょう!(brainstorm.md に書いてみてくださいね!

  1. アプリを触って、画面の変化を見る 気温の数字をいろいろ変えて、結果がどう変わるか試す
  2. 人がアプリ上で行う操作と、画面で起きることを順番に書く
  3. あとから読んでも、他の人やコンピューターにも分かるように、丁寧に書き直す
ヒント

料理レシピのように手順を細かく分けてみよう

  1. 玉ねぎ・人参・じゃがいもを切る
  2. 鍋に油を引いて、肉と一緒に炒める
  3. 水を入れて、煮込む
  4. 火を止めて、ルーを溶かす
  5. もう一度ひと煮立ちさせる
ヒント

3つの観点で、丁寧に書き直してみる — When・What(Where)・How

以下の3つの観点で、さっき書いた内容をもう少し具体的にしてみよう!

お天気アドバイザー
気温の入力欄
服装をチェック
結果表示エリア
When — いつ?

人間の操作に合わせた表現にするとGood!

What(Where) — 何を?どこ?

例えば、おすすめの服装を表示させる場所って「どこ?」
どう伝えればコンピューターに伝わる??

How — どうなる?

操作のあと画面やメッセージがどうなるかをはっきりと!

進め方

グループで考えて、チューターに確認してもらう

待っている時間も、書き足し・修正を進めます。
  • 最初の5分 — グループで相談しながら、まず brainstorm.md に書き出してみましょう!
  • その後 — 担当チューターに順番につなぎます!書き出した内容を伝えてアドバイスをもらってください!
  • 確認が終わったら — 現地スタッフに声をかけてください!次のグループへ順番を回します!
  • 待っている間 — 前のヒントを参考に、より丁寧な表現に直してみてください!

お困りごとがあれば、現地メンバーにお声がけくださいね!

HTML/CSSの復習

画面の部品と、場所を伝える目印を確認する

復習

HTML — アプリに表示したいものを書く指示書

「●●を表示する」 という、コンピューターへの指示が書かれたもの。

お願いの例

  • タイトル を表示する」 → <h1>
  • 説明文 を表示する」 → <p>
  • 入力欄 を表示する」 → <input>
  • ボタン を表示する」 → <button>
復習

CSS — デザインのお願いをする指示書

「〇〇のHTMLタグを、●●な感じにデザインする」

  • タイトル部分 のHTMLの文字を、青色 にする
  • ボタン部分 のHTMLの背景を、緑色 にする
  • カード部分 のHTMLの角を、丸く する
復習

「〇〇の」表し方・その1 — タグの名前で場所を伝える

index.html

<h1>お天気アドバイザー</h1>

style.css

h1 {
  color: blue;
}

h1 と書けば すべての <h1> がまとめて青色になります。

復習

「〇〇の」表し方・その2 — 目印の名前で場所を伝える

index.html

<h1 class="title">
  お天気アドバイザー
</h1>

style.css

.title {
  color: blue;
}
  • HTMLでデザインを変えたい場所に class="title"目印をつける
  • CSSで .title(頭にドット)を使うと、 指定した目印をつけたHTML の場所のデザインを変えることができる
復習

配ったアプリの中身を読んでみよう

lesson/index.html を VSCode で開いてください!

使われているタグ

  • <h1> — タイトル「お天気アドバイザー」
  • <p> — 説明や、結果の表示エリア
  • <input> — 数字を入れるところ
  • <button> — 押すボタン

<input> は前回も少し見た「入れる場所」を作るタグ。今日はこれを実際に使います。

復習

デザインのつき方(CSS)をチェックしよう

lesson/style.css に CSS が書いてあります。中身を覗いてみよう。

  • カード全体の背景・余白・角丸
  • ボタンの色・大きさ
  • 結果表示エリアの背景色

前回の復習を兼ねて読むだけでOKですが好きなところを書き換えしてもいいですよ!

JavaScriptの復習

目印を使って、画面の動きを作る

復習

JavaScript — アプリの動きを作る指示書

画面の部品に対して、いつ・何を起こすか をコンピューターに伝えるもの。

身近なアプリの動きも、JavaScriptの考え方で説明できます

  • 送信ボタン を押したら、メッセージが相手に送られる」 — LINE
  • 上下にスワイプ したら、別の人の動画に切り替わる」 — TikTok
  • 写真をタップ したら、フロントとリアの写真が切り替わる」 — Be Real
翻訳

日本語で書いた内容を、JavaScriptに翻訳する

さっき書き出した内容の中に、こんな文があるかもしれません。

「服装をチェック」ボタンを押したら、 (...途中略)
結果表示の部分に「半袖がおすすめ(他の服装)」と出す

まずはこの1文を、JavaScriptに翻訳してみましょう

翻訳

Where — 「どこ?」をHTMLの目印で伝える

人間は画面を見れば、「服装をチェック」ボタンがどれか分かります。
でも、JavaScriptには HTMLのどの場所か を、タグや class の目印で伝える必要があります。

HTML を見ると、ボタンに class の目印がついています

<button class="button">服装をチェック</button>

この目印を辿って、JavaScript から指す

document.querySelector('.button')

. は class の目印」 — 前回も触れた書き方。

翻訳

When — 「いつ動く?」をJavaScriptで伝える

When — ボタンが押されたとき

.button の目印がついたボタンが 押されたとき に、次の処理が動くようにします。

document.querySelector('.button').addEventListener('click', function () {
  // ここに「押されたあとにやること」を書く
});
  • document.querySelectorどのボタン(Where)
  • addEventListener("操作の名前")どのタイミングで(When)
翻訳

Where / What / How — 押されたあとに何を表示する?

Whenで「ボタンが押されたとき」を伝えました。次は、そのあと画面で何が起きるかを書きます。

結果表示エリア」 に 「半袖がおすすめ」 と 出す

青 = Where(どこに?)赤 = What(何を?=表示データ)緑 = How(どう表示する?)

JavaScript に翻訳

document.querySelector('.result').innerHTML = '半袖がおすすめ';

日本語の 3つの部分 が、そのまま JavaScript の 3か所 に対応します。

ワーク

When と Where / What / How を組み合わせる

さっき書いた「いつ動く?」と「押されたあとに何を表示する?」を1つにまとめます。

気温に関係なく、ボタンを押したら 必ず「半袖がおすすめ」と出る 状態を作りましょう。

document.querySelector('.button').addEventListener('click', function () {
  document.querySelector('.result').innerHTML = '半袖がおすすめ';
});

到達点 — ブラウザでボタンを押したら、メッセージが書き換わります。
前回触れた範囲(When + Where + What + How)だけで、ここまで動く!

変数とif

もっと色々な指示ができるように

設計

「読み取る」と「判断する」に分けて考える

お天気アドバイザーの動きを、もう少し細かい工程に分けて考えます。

  1. 読み取る — 入力欄に書かれた気温をチェックして確認する
  2. 判断する — 気温によって、表示するメッセージを決める

工程を分けると、JavaScriptに翻訳しやすくなります。料理のレシピと同じですね!

設計

読み取った気温を、次の工程で使えるようにする

コンピューターは言われたことしかしない→確認した気温データを自動では覚えてくれません。
2つ目以降の工程で使うには、「あとで使う(から覚える)」と分かる形にしておく必要があります。

そこで、読み取ったデータに 名前をつけて覚えさせておく 仕組みを使います。

復習

変数 — 名前をつけてコンピューターにデータを覚えさせる

let temperature = 25;
  • let — 値を覚えさせておくための目印(これがあると覚えさせる仕組みが使える)
  • temperature — 覚えさせたデータにつける名前
  • = 25 — 覚えさせておくデータそのもの
翻訳

「気温を覚えておく」をJavaScriptに翻訳する

日本語 — 覚えておきたいこと

入力欄に書かれている気温」を確認して、
temperature という名前で覚えておく

赤 = 覚えた値につける名前青 = 入力欄の中身

let temperature = document.querySelector('.input').value;

青の部分は 「入力欄を指して、中身を確認する」 ところです。
.input の目印を辿って、 .value で中身を確認しています。

新しい道具

状況によって、やってほしいことを変える — if

ifを使うと、その時の状況に合わせて、実行する内容を変えることができます!

気温

もし 30度以上 なら

「半袖をおすすめ」

20度以上〜29度以下なら

「長袖をおすすめ」

それ以外 なら

「上着着るのおすすめ」

翻訳

状況ごとの処理を if にする

30度以上
半袖
20度以上
長袖
それ以外
上着
if (temperature >= 30) {
  document.querySelector('.result').innerHTML = '半袖をおすすめ';
} else if (temperature >= 20) {
  document.querySelector('.result').innerHTML = '長袖をおすすめ';
} else {
  document.querySelector('.result').innerHTML = '上着を着るのがおすすめ';
}
ワーク

書き出した内容を、JavaScript に翻訳してみましょう

これまで学んだ 変数if を使って、 brainstorm.md に書いた内容を script.js に書き換えていきます。

brainstorm.md の文を、JavaScriptの形に少しずつ置き換えていけばOKです。

分からないところは、 言語化したものをそのまま AI に貼って相談 でOK。

あれ?

気温を比べたのに、思った通りに動かない人へ

同じ「25」でも、コンピューターにとっては 2種類の使い方 があります。

名前として並んだ数字

郵便番号 250-0001
電話番号 090-1234-5678
AKB48などの名称

計算には使わない

計算する数字

気温 25
年齢 20
テストの点数

比べたり 足したり できる

入力欄から取れるのは、最初は 「名前として並んだ数字」。 気温として比べるには、計算する数字に書き換える 必要があります。

新しい道具

「計算できる形に、確実に変換する」 = Number()

入力欄から取れる「名前として並んだ数字」を、 確実に計算できる形に変換する のが Number(...) のお願い。

let temperature = Number(document.querySelector('.input').value);

気温データを確認 → 計算できる形に変換temperature というラベルで記憶。

比較

Number() を入れない場合 — 文字のまま

入力欄から取った値は、まず 文字として並んだ数字 として扱われます。

let temperature =
  document.querySelector('.input').value;

// temperature は "25" (文字)
if (temperature >= 30) { ... }

気温として比べたり計算したりしたい場合は、計算できる数字 に変換しておくと安心です。

比較

Number() を入れる場合 — 計算できる数字に変換

Number(...) で囲むと、入力欄の中身を 計算できる数字 として扱えます。

let temperature =
  Number(document.querySelector('.input').value);

// temperature は 25 (計算できる形)
if (temperature >= 30) { ... }

temperature を、気温として比較できる状態にしてから if で判断します。

試してみる

動いたら、少しいじって挙動を確かめる

  • 気温の境目(30度/20度)を変えてみる → 出るメッセージはどう変わる?
  • 表示メッセージを自分の言葉に書き換える
  • else if をもう一段増やしてみる(例 — 35度以上の暑い日 用)

少しいじって、何が変わるかを見るのが 一番の練習

課題

課題

前回のITOカードを再現した上で、ifでメッセージを足す

前回作ったITOカードを再現した上で、今日学んだifを使った機能を付け加えてください!

ITOメッセージカードの動作デモ

ITOメッセージカードで作る機能

  • ランダムな数字 — ボタンを押すと、1〜100の数字が出る
  • 数字の表示 — 出た数字をカードに表示する
  • ifによる切り替え — 数字の大きさに合わせて、表示させるメッセージを変える
課題

数字に合わせて、表示するメッセージを変える

前回やったITOでは、「出た数字 = どれくらい大切かの度合い」として考えました。
数字の大きさに合わせて考え方のヒントを表示する機能を追加しましょう!

メッセージの例

  • 80以上 — 自分にとってかなり大切なものを考えてみましょう
  • 40以上〜79以下 — 少し迷うものを考えてみましょう
  • 39以下 — あまり大切ではないものを考えてみましょう

メッセージ内容や境目の数字は、自分の言葉で変えてOKです。

課題

今日と同じ流れで、課題を進める

いきなりコードを書くのではなく、まず起きることを書き出してからJavaScriptに翻訳します。

  1. assignment/memo.md に、ITOメッセージカードで起きることを書き出す
  2. assignment/index.html をブラウザで開き、カードが表示されることを確認する
  3. memo.md を見ながら、前回のITOカードを再現し、その上で if を使ってメッセージを切り替える
課題

提出物

以下の一式が含まれてることを確認し、 04_20260430_data フォルダごと提出してください。

一式の中身

  • lesson/brainstorm.md — お天気アドバイザーの言語化(授業で書いたもの)
  • assignment/index.html — 自分のアプリの HTML
  • assignment/style.css — 自分のアプリの CSS
  • assignment/script.js — 自分のアプリの JavaScript
  • assignment/memo.mdITOメッセージカードの言語化、条件と結果、工夫した点

提出場所 — https://lecture-cms.tatsuyakosuge.com/submit

最後

自由時間 — 自分のアプリに着手してみましょう

時間の使い方

  • 動いている人 — assignment/memo.md言語化から 始めてみましょう
  • 詰まっている人 — 担当チューターが個別にサポートします
  • 早く終わったら — 条件をもう一段足したり、メッセージや見た目を変えたりしてみましょう

この時間で 課題が形になるところまで 進められたら理想です。