SlideShare uma empresa Scribd logo
1 de 20
JavaScript 基礎Ⅱ
 制御構文
 for
 for in
 while
 do while
 switch case
 関数
 定義、呼び出し
 無名関数
 変数スコープ
 課題
for, while, switch case
 繰り返し処理を実行する
for (var i = 0; i < 5; i++) {
console.log("ここは 5 回実行される");
}
 配列を走査する
var arr = ["a", "b", "c", "d", "e", "f"];
var i, length = arr.length;
for (i = 0; i < length; i++) {
console.log("arr[" + i + "]: " + arr[i]);
}
 オブジェクトを走査する
 添字の自由度が高い Object は単純に走査できない
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
console.log("obj[" + key + "]: " + obj[key]);
}
 for in はオブジェクトの全てのプロパティを走査する
 ときには不要なメソッドまで走査するのでそのままでは使え
ない
Object.prototype.hoge = "hogehoge";
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
console.log("obj[" + key + "]: " + obj[key]);
}
 Object の hasOwnProperty メソッドを使ってオブジェクトに属して
いるプロパティとメソッドだけを列挙する
Object.prototype.hoge = "hogehoge";
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
console.log("obj[" + key + "]: " + obj[key]);
}
}
 繰り返し処理を実行する
var count = 6;
while (count-- > 0) {
console.log("カウントダウン: " + count);
}
 少なくとも 1 度実行する繰り返し処理
var count = 5;
do {
console.log("カウントダウン: " + count);
} while (count-- > 0);
 複数の条件で処理を分岐する
var num = 3;
switch (num % 2) {
case 0:
console.log("num は偶数");
break;
case 1:
console.log("num は奇数");
break;
default:
console.log("num は数値ではない");
break;
}
一連の処理をまとめる
 よく使う処理はまとめると分かりやすい
// 配列を順番にブラウザのコンソールへ列挙する
function showArray(arr) {
var length = arr.length;
for (var i = 0; i < length; i++) {
console.log("[" + i + "]: " + arr[i]);
}
return length;
}
 宣言 (定義) した関数を使うときに呼び出す
var summer = [
"海", "花火", "避暑", "プール", "夏休み"
];
showArray(summer);
 引数: 関数へ渡す値
 返り値: 関数を実行した結果
// 宣言
function showArray(arr) { ...(略)
// 呼び出し
var length = showArray(summer);
関数名
関数名
引数
引数返り値
 名前の無い関数
 関数リテラル
var f = function (x, y) {
return [x, y]
};
var p = f(3, 2);
関数も値のように扱える!
 変数にはその変数が有効である範囲がある
 JavaScript では関数によってのみ、変数の有効範囲が決まる
var value = 0;
// 即時関数
(function () {
var value = 1;
console.log("inner: " + value);
})();
console.log("outer: " + value);
 変数スコープにはグローバルとローカルがある
 ローカルスコープの変数は var を使って宣言する
var value = 0;
(function () {
// var を取り払うと…
value = 1;
console.log("inner: " + value);
})();
console.log("outer: " + value);
 次のコードを読んで、コンソールを出力される値を考える
var value = 0;
(function () {
var value = 2;
(function () {
value = 1;
console.log("A: " + value);
})();
console.log("B: " + value);
})();
console.log("C: " + value);
 アンケート
 課題は後ほど…

Mais conteúdo relacionado

Mais procurados

Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみるftnk
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Keisuke Fukuda
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」de:code 2017
 
Haskell超初心者勉強会11
Haskell超初心者勉強会11Haskell超初心者勉強会11
Haskell超初心者勉強会11Takashi Kawachi
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithmtakesako
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるShintaro Fukushima
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感31 00
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹CODE BLUE
 
V6でJIT・部分適用・継続
V6でJIT・部分適用・継続V6でJIT・部分適用・継続
V6でJIT・部分適用・継続7shi
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会7shi
 
Async design with Unity3D
Async design with Unity3DAsync design with Unity3D
Async design with Unity3DKouji Hosoda
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3kAtsuo Ishimoto
 

Mais procurados (20)

Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
 
Haskell超初心者勉強会11
Haskell超初心者勉強会11Haskell超初心者勉強会11
Haskell超初心者勉強会11
 
Unix
UnixUnix
Unix
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithm
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
llvm入門
llvm入門llvm入門
llvm入門
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
V6でJIT・部分適用・継続
V6でJIT・部分適用・継続V6でJIT・部分適用・継続
V6でJIT・部分適用・継続
 
Haskell で CLI
Haskell で CLIHaskell で CLI
Haskell で CLI
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
Altanative macro
Altanative macroAltanative macro
Altanative macro
 
Async design with Unity3D
Async design with Unity3DAsync design with Unity3D
Async design with Unity3D
 
Slub data structure
Slub data structureSlub data structure
Slub data structure
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3k
 

Destaque (18)

GitHub Travis-CI Go!
GitHub Travis-CI  Go!GitHub Travis-CI  Go!
GitHub Travis-CI Go!
 
Service Workers
Service WorkersService Workers
Service Workers
 
Scuba diving 1
Scuba diving 1Scuba diving 1
Scuba diving 1
 
JAA事業説明資料
JAA事業説明資料JAA事業説明資料
JAA事業説明資料
 
前期講座05
前期講座05前期講座05
前期講座05
 
前期講座01
前期講座01前期講座01
前期講座01
 
Umami+企画書 (1)
Umami+企画書 (1)Umami+企画書 (1)
Umami+企画書 (1)
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
WebGL
WebGLWebGL
WebGL
 
01.app
01.app01.app
01.app
 
Jaa説明資料(外部用0628)
Jaa説明資料(外部用0628)Jaa説明資料(外部用0628)
Jaa説明資料(外部用0628)
 
前期講座02
前期講座02前期講座02
前期講座02
 
01:artificial life
01:artificial life01:artificial life
01:artificial life
 
Scuba diving 1
Scuba diving 1Scuba diving 1
Scuba diving 1
 
Service Workers Push API Hands-on
Service Workers Push API Hands-onService Workers Push API Hands-on
Service Workers Push API Hands-on
 
OpenGL 3DCG
OpenGL 3DCGOpenGL 3DCG
OpenGL 3DCG
 
phpck
phpckphpck
phpck
 
TensorFlow 入門
TensorFlow 入門TensorFlow 入門
TensorFlow 入門
 

Semelhante a 前期講座09

ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和schoowebcampus
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScriptAshitaba YOSHIOKA
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタートShumpei Shiraishi
 
Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説JPCERT Coordination Center
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会Koichi Sakata
 
知って得するC#
知って得するC#知って得するC#
知って得するC#Shota Baba
 
Javaセキュアコーディングセミナー東京第2回演習
Javaセキュアコーディングセミナー東京第2回演習Javaセキュアコーディングセミナー東京第2回演習
Javaセキュアコーディングセミナー東京第2回演習JPCERT Coordination Center
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 
Flow.js
Flow.jsFlow.js
Flow.jsuupaa
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューAkira Inoue
 
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】株式会社ランチェスター
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)Shinichi Awamoto
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.ContextAkira Takahashi
 
わかるコードを書くために For writing clean code
わかるコードを書くために For writing clean codeわかるコードを書くために For writing clean code
わかるコードを書くために For writing clean codeEyes, JAPAN
 
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Yuki Higuchi
 

Semelhante a 前期講座09 (20)

ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScript
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会
 
知って得するC#
知って得するC#知って得するC#
知って得するC#
 
Javaセキュアコーディングセミナー東京第2回演習
Javaセキュアコーディングセミナー東京第2回演習Javaセキュアコーディングセミナー東京第2回演習
Javaセキュアコーディングセミナー東京第2回演習
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
Flow.js
Flow.jsFlow.js
Flow.js
 
関数
関数関数
関数
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
 
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.Context
 
わかるコードを書くために For writing clean code
わかるコードを書くために For writing clean codeわかるコードを書くために For writing clean code
わかるコードを書くために For writing clean code
 
Aizu lt tokyo_luxion
Aizu lt tokyo_luxionAizu lt tokyo_luxion
Aizu lt tokyo_luxion
 
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
 

Mais de Takenori Nakagawa (19)

機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法
 
Docker で Deep Learning
Docker で Deep LearningDocker で Deep Learning
Docker で Deep Learning
 
後期05
後期05後期05
後期05
 
後期03
後期03後期03
後期03
 
後期02
後期02後期02
後期02
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
 
OpenIL vol.1
OpenIL vol.1OpenIL vol.1
OpenIL vol.1
 
後期講座08
後期講座08後期講座08
後期講座08
 
後期講座07
後期講座07後期講座07
後期講座07
 
後期講座05
後期講座05後期講座05
後期講座05
 
後期講座03
後期講座03後期講座03
後期講座03
 
後期講座01
後期講座01後期講座01
後期講座01
 
Illust bookmark
Illust bookmarkIllust bookmark
Illust bookmark
 
pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013
 
前期講座08
前期講座08前期講座08
前期講座08
 
前期講座07
前期講座07前期講座07
前期講座07
 
前期講座06
前期講座06前期講座06
前期講座06
 
前期講座04
前期講座04前期講座04
前期講座04
 
前期講座03
前期講座03前期講座03
前期講座03
 

Último

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Último (7)

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

前期講座09