今日は品川の事務所へ行って仕事してきました。

残業があり、夜の21時まで働きました。

明日も大事な打ち合わせあるので頑張りたい。



Today I  worked in Shinagawa office.

I worked to finish in 21 ocrock.

Tomorrow is too.



I visited my office in Shinagawa today and worked there. I had to work overtime until 9 p.m. I have an important meeting tomorrow, so I want to do my best.




習慣化をしないと実力が身に付かない。

上司は打ち合わせの中でそう言っていました。

今月末で退職して別の場所で働くそうです。

自分も早く独り立ちできるよう頑張ろ😪


it should to make a hobby because I don't acquire skills.

My boss said to me in a meeting.

He is going to work others office that he retirements.

keep up the good work yourself.🍶



- Without forming habits, skills won't develop,"my boss said during a meeting.

- He's retiring at the end of this month and will work elsewhere.

- I too must strive to become independent soon.🙆

今日は久しぶりに虎ノ門へ出勤しました。

昨日買ったコートとシャツを着こなし、気持ちの良い一日でした。

明日は自宅からリモートワークなのでゆっくり仕事したいと思います。爆  笑

 

Today I went to Toranomon office in while.

I feeled to comfortable because I was weared to a cort and shirts it's bought yesterday.

I thought to slowly work becouse tomorrow is remort working on my house.鳥

 

Today, I went to work in Toranomon for the first time in a while.

I styled myself in the coat and shirt I bought yesterday, making it a pleasant day.

Tomorrow, I plan to work remotely from home and take it easy.昇天

今日は午後から奥さんとスーツショップへ買い物へ行きました。

9アイテム購入したのですが、半額クーポンがあったので、かなり安く購入出来ました。

充実した一日でよかったです。爆  笑

 

Today I went to suitshop to buy items with my wife in afternoon.

I was able to buy very chieply nine items because I have 50%off coupone.

I feeled to very enjoyed today.鳥

 

Today, I went shopping at a suit shop with my wife in the afternoon. 

We bought 9 items, but we had a 50% off coupon, so we were able to purchase them quite cheaply. 

It was a fulfilling day.昇天

 

 

 

前から興味のあった英語で日記をつけることを今日から始めたいと思います。


やり方としては、3ステップあります。


①最初に日本語で文章を書きます。

②英語で文章を書きます。

③chatgptに添削してもらい修正します。


最後に音読して終了します。

1週間まずは続けたいと思います。

👍


I want to start to write an English diary today because I thought to interesting before.

How to do it for 3 steps.


1 First step is writing a Japanese diary.

2 To write a 


😭


Today, I want to start keeping a diary in English, something I've been interested in for a while.


There are three steps to this process:


1. First, I'll write the entry in Japanese.

2. Then, I'll write it in English.

3. I'll have ChatGPT review and correct it.


Finally, I'll finish by reading it aloud. I aim to continue this for at least a week.




さあ今夜もやっていきましょう!

 

ささっと

 

スタートです!

 

関数とは

関数(かんすう)とは、「いくつかの処理をまとめたもの」です。
図では、「あいさつをする」「名前を言う」という2つの処理を「introduce」という名前でまとめています。
実際の関数の書き方を次のスライドから学んでいきましょう。

 

 

関数の定義

以下の図のように「function()」と書き、その後ろの中括弧「{ }」の中にまとめたい処理を書くことで関数を用意することができます。
また、このように関数を用意することを「関数を定義する」と呼びますので覚えておきましょう。

 

 

関数の呼び出し

関数を定義しただけでは、その中の処理は実行されません。
図のように、関数を定義した際に使用した定数名を用いて、

「定数名()」と書くことで関数の中の処理を実行できます。このことを「関数を呼び出す」と言います。
まずは演習問題で、実際に関数を呼び出してイメージをつかんでみましょう!

 

 

関数の代入

関数の定義を少し詳しく見てみましょう。関数の定義で、実際に関数を表している部分は以下の図のオレンジ線で囲んだ部分です。その関数を定数「introduce」に代入することで、

関数を定義しています。次は、関数の呼び出しだけでなく、関数の定義から書いてみましょう!

 

 

アロー関数

図のように、「function()」の部分を「() =>」としても、これまでと同じように関数を定義することができます。これはES6から導入された新しい書き方で、「function」を用いるよりシンプルに書くことができます。
また、この関数の書き方のことを、特別にアロー関数と呼びます。

 

 

アロー関数では、これまでの「function()」の部分を「() =>」と書くこと以外は定義方法は変わりません。また、呼び出し方もこれまで学習してきた関数と変わりません。
ここからの演習問題では、基本的にアロー関数の書き方を用いるようにしましょう。

 

引数とは

引数(ひきすう)とは関数に与える追加情報のようなものです。
関数を呼び出すときに一緒に値を渡すことで、関数の中でその値を利用することができます。

 

 

引数の定義

それでは、引数を受け取る関数を定義してみましょう。
図のように、「(引数名) =>」と括弧の中に引数名を書くことで
引数を受け取ることができます。

 

 

呼び出し

引数を受け取る関数を呼び出すには、「定数名(値)」と書きます。関数は指定した値を受け取り、その値は引数に代入されます。
右の図では、introduceの呼び出し時に「"にんじゃわんこ"」という値が渡され、引数nameに代入されています。

 

 

引数は関数内では定数や変数と同じように使用することができます。
以下の図で、引数を受け取る関数の流れを確認しましょう。

 

 

複数の引数を受け取る関数

関数は引数を複数受け取ることもできます。()の中に受け取る引数をコンマ(,)で区切って並べることで、

複数の引数を指定することができます。引数は、左から順番に「第1引数、第2引数、...」と呼びます。

 

 

複数の引数に値を渡して関数を呼び出すには、定義するときと同じように、コンマ(,)を用います。
渡す引数の順番と関数を定義したときの引数の順番は対応しているので、関数を呼び出すときは引数の順番に気をつけましょう。

 

 

戻り値

ここからは、関数の処理結果を呼び出し元で受け取る方法を学びます。
呼び出し元で受け取る処理結果を戻り値(もどりち)と呼び、このことを「関数が戻り値を返す」と言います。
下のイメージ図では、関数addが「3」と「7」を受け取り、処理結果の「10」を呼び出し元に返しています。戻り値にあたるのがこの「10」です

 

 

関数の中でreturnを使うと、呼び出し元で値を受け取れるようになります。
「return 値」と書くことで、関数はその値を戻り値として返します。

 

 

呼び出した関数に戻り値がある場合、関数の呼び出し部分がそのまま戻り値に置きかわります。
左の図のように、関数の呼び出し部分を定数に代入することもできます。

 

 

様々な戻り値

戻り値も引数と同様に、様々な値を用いることができます。
例えば、if文で使うような条件式をreturnすると、その条件式の結果として得られる真偽値(trueまたはfalse)を返すことができます。

 

 

returnについて詳しく見てみましょう。
returnは、戻り値を返すだけでなく、関数の処理を終了させる性質も持っています。よって、

returnの後にある関数内の処理は実行されませんので注意しましょう。

 

 

関数中の定数

関数の引数や、関数内で定義した定数や変数は、その関数の中でしか使うことができません。
下の図の場合、introduceの中で定義されている定数nameは、この関数の中でしか使うことができません。

このようなそれぞれの定数や変数の使用できる範囲のことをスコープと呼びます。

 

一方、関数の外で定義した定数や変数は、関数の中でも使うことができます。
下の図の例では、定数nameは関数の外で定義されていますので、関数の中でも外でも使うことができます。

 

関数だけでなく、ifやswitchなどの条件文、forやwhileなどの繰り返し文などの、中括弧「{}」を使う構文でもスコープを作ります。

 

 

総合課題

3つの整数から最大値を取得できるgetMax関数を作成しましょう。
図のように、getMax関数は3つの整数を引数に取り、最大値を戻り値とします。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

では前回に続き学習を進めていきましょう!

 

今回は基礎を固める重要な章となります。

 

プログラミング知識としては必須の項目となりますので頑張りましょう。

 

ではスタート!

 

 

復習

変数の使い方を復習してみましょう。
今回は以下のように、コンソールに1から5までの数字を順番に出力してみます。

 

 

変数

図のように1から順番にconsole.logで出力していくことでできます。

 


ですが今回は「変数」の復習も兼ねて、図のように変数numberを用意し、1回ずつ自分自身に1を足していきましょう。

 

 

繰り返し処理

次に、1から100までの数字を出力する場合を考えてみましょう。
前のページと同じように、左の図の緑の枠で囲んだ部分を100回書けばできますが、それはさすがに大変すぎますね。
このような場合には「繰り返し処理」というものを用いると便利です。その方法を次のスライドで学習してみましょう。

 

 

 

while文

繰り返し処理を行うためにはwhile文というものを用います。
whileとは「~の間」という意味の英語です。
while文は下の図のように書き、「条件式がtrueの間、{ }内の処理を繰り返す」ことができます。 {}の後にセミコロンは不要です。

 

 

1から100まで数字を出力する例で、while文の書き方を見てみましょう。
まず、繰り返す部分の処理をwhileの「{ }」の中に書いていきます。

今回は左の図の緑の枠で囲んだ部分が繰り返すコードですので、while文では右の図のように書きます。

 

 

次に、「いつまで繰り返すか」を指定するための条件式を追加しましょう。
今回は「変数numberが100以下」の間に処理を繰り返したいので、左の図のような条件式を書きます。
まず条件式の判定が行われ、trueの時のみ{}の中で処理が1度実行されます。その後、再び条件式がtrueかどうかチェックされ、

trueであればもう一度処理が実行されます。

 

 

注意点

while文を用いる場合には、条件式の部分がいつかはfalseになり、繰り返し処理が終わる必要があることに注意してください。
左の図では変数numberの値を更新するコードを書き忘れており、これではいつまでも条件がtrueのままで、

永遠に繰り返し処理が続いてしまいます。
(これを無限ループと呼びます。)

 

 

for文

繰り返し処理を行う方法として、while文以外にもfor文というものがあります。できることはwhile文と同じですが、

while文に比べてシンプルに書くことができるのが特徴です。
具体的な書き方を、次のスライドで見てみましょう。

 

 

for文では「変数の定義」「条件式」「変数の更新」の3つを括弧の中に書きます。括弧の中ではそれぞれをセミコロン(;)で区切ります。
左の図がwhile文、右の図がfor文のコードになっています。下線が引いてある部分を中心に、見比べてみましょう。

 

 

計算式の省略

「number += 1」は「number ++」のように省略して書くことができます。また、引き算の場合にも、

「number -= 1」を「number --」と省略することができます。
while文やfor文では、この省略した書き方を使ってコードを短くすることができますので、覚えておきましょう。

 

 

 

繰り返し処理の応用

最後に、for文を用いて繰り返し処理の応用問題に挑戦してみましょう。
右の図のように、1から100の数字を出力してください。ただし、3の倍数の時は「3の倍数です」と出力してください。

 

 

複数の値をまとめて

複数の値をまとめて扱う方法について学んで行きましょう。
例えば、果物の名前についての値がいくつもあるとき、それぞれを定数(変数)として定義するより、

「果物の名前一覧」といったように関連する値をまとめて管理すると便利です。

 

 

配列とは

複数の値をまとめて管理するには、配列というものを用います。
配列は、[値1, 値2, 値3] のように作ります。配列に入っているそれぞれの値のことを要素と呼びます。
配列を使うと、右の図のように複数の文字列や数値をまとめて書くことができます。

 

 

配列を定数に代入

配列も1つの値なので、定数に代入することができます。
このとき、配列を代入する定数名は、慣習上複数形にすることが多いので覚えておきましょう。
左の図のように、「console.log(定数名)」とすると、配列がコンソールに出力されます。

 

 

 

インデックス番号

配列の要素にはそれぞれインデックス番号という番号がついています。
インデックス番号は、0から始まることに注意しましょう。

 

 

配列の要素を取得する

インデックス番号を用いて配列の要素を取得してみましょう。
配列[インデックス番号]とすることで配列の要素を取得することができます。
例えば「apple」の取得は、左の図のように、appleのインデックス番号である0を用いてfruits[0]とすることで可能です。

 

 

配列の要素を更新

図のように、要素に値を代入することでその要素を上書きすることができます。

 

 

配列と繰り返し

配列に対して繰り返し処理を行うことがしばしばあります。
ここでは、for文を使って配列の要素を順に取り出すようにしてみましょう。

 

 

 

配列とfor文

配列fruitsの要素数が3の場合、すべての要素を出力するには、左の図のように書かなけばなりません。
これをfor文で書き直すと右の図のようになります。このようにすれば配列の中に格納されているすべての値を

簡単に出力することができます。この際、変数の値は0から始めることに注意しましょう。

 

 

 

lengthについて

図のように配列.lengthとすることで、配列の要素数を取得できます。
また、lengthを用いれば、前の演習のfor文の条件式を右の図のように書き換えることができます。
これは配列の繰り返し処理でよく使う書き方ですので、覚えておきましょう。

 

 

 

オブジェクトとは

ここからは、「オブジェクト」について学んでいきます。
オブジェクトは配列と同じく複数のデータをまとめて管理するのに用いられます。
配列は複数の値を並べて管理するのに対して、オブジェクトはそれぞれの値にプロパティと呼ばれる名前をつけて管理します。

 

 

オブジェクトは、{プロパティ1: 値1, プロパティ2: 値2}のようにつくります。
配列は要素を[]で囲みましたが、オブジェクトは{}で囲みます。プロパティと値の間はコロン( : )で繋ぎます。

また、配列と同様に、要素と要素はコンマ(,)で区切ります。

 

 

オブジェクトも定数に代入することができます。
また、左の図のように「console.log(定数名)」とすると、オブジェクトがコンソールに出力されます。

 

 

オブジェクトの値を取り出す

オブジェクトの値を取り出すには、対応するプロパティ名を用いて 、
「オブジェクト.プロパティ名」のようにします。

 

 

「オブジェクト.プロパティ名 = 新しい値」とすることでオブジェクトの値を更新することができます。

 

 

オブジェクトを要素に持つ配列

ここからは、オブジェクトを要素に持つ配列を見ていきましょう。
配列の要素には、文字列や数値だけでなく、オブジェクトも使うことができます。その特性により、

左の図のような配列を作ることができます。
その際、コードが横に長くなることを防ぐために、右の図のように要素ごとに改行することがよくありますので、覚えておきましょう。

 

 

配列の要素には、先頭からインデックス番号が割り振られていることを思い出してください。
図のような配列では、配列の値がオブジェクトなので、配列[インデックス番号]で対応するオブジェクトを取得することができます。

 

 

さらに、配列の中のオブジェクトのプロパティの値を取り出すには、
「配列[インデックス番号].プロパティ名」と書きます。
やや複雑になってきましたが、これまでの知識の組み合わせですので、わからない箇所はこれまでのスライドで復習してみましょう。

 

 

配列と繰り返し処理

これまでに学習した「オブジェクトを要素に持つ配列」と「繰り返し処理」を、演習問題を通して復習してみましょう。
以下の図のように、キャラクターの情報(名前・年齢)を順に出力してみます。

 

 

存在しない要素を取得する

これまでに配列やオブジェクトの扱い方を学習してきました。
では要素を取得する際に、配列に対して存在しないインデックス番号を指定したり、

オブジェクトに対して存在しないプロパティを指定するとどうなるのでしょうか?

 

 

undefined

図のように、配列の存在しないインデックス番号の要素や、オブジェクトの存在しないプロパティの要素を取得しようとすると、

undefined と出力されます。
undefined は特別な値で、値が定義されていないことを意味します。

 

 

undefined を避ける

先程の演習では、図のように値が存在しない時に「undefined歳です」と出力されてしまいました。
代わりに「年齢は秘密です」と出力する方法を学んでいきましょう。

 

 

undefined とif文

undefined をif文の条件式に使ってみましょう。
「character.age」の値が「undefined」と等しいかどうかで処理を分岐します。

 

 

複雑なオブジェクト

オブジェクトの値の部分には、文字列や数値だけでなく、オブジェクトを用いることができます。

以下の図では、「character」というオブジェクトの「favorite」プロパティに対応する値に、オブジェクトを用いています。

 

 

オブジェクトを呼び出す

このようなオブジェクトは、「オブジェクト名.プロパティ.プロパティ」のように呼び出します。
左の図の定数characterというオブジェクトの中のfoodの値を呼び出すには、「character.favorite.food」と指定します。

 

 

カフェにオススメのメニュー情報を追加します。
以下の図のように、オブジェクトの値には配列を用いることもできます。

 

 

lengthと配列とfor文がみそでしたね!

 

ではまた次回に

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

今回は仕事でも使う事になってきたJavascriptについて学習していきたいと思います。

 

最近だとkintoneでJavascriptを利用してますね。

 

では早速スタートです。

 

JavaScript(ES6)とは

 

JavaScript(以下、JSと呼びます)はWeb開発において必須の存在です。

現在では、ほぼ全てのWebサイトでJSが使用されています。
今回学習するES2015(ES6)は、JSの新しい仕様(バージョン)で、

従来のJSより効率的にコードが書けることから近年注目を浴びています。

 

 

実行について

 

まずは、ES6のコードを実行してみましょう。コンソールという画面に文字を出力(表示)します。
「console.log("○○");」というコードを書くと、()の中の○○という文字がコンソールに出力されます。

 

 

console.log()

コードの書き方をより詳しく見ていきましょう。console.log() は丸括弧 () 内に入力された文字をコンソールに出力します。
また「Hello World」のような文字のことを文字列と呼びます。文字列は、左の図のようにシングルクォーテーション( ' )か

ダブルクォーテーション( " )で囲む必要があるので注意しましょう。

 

 

文の最後はセミコロン(;)で終わります。セミコロンはなくても正常に動作する場合が多いですが、

思わぬ不具合が生じる可能性があるので忘れずにつけましょう。

 

 

コメントアウト

文頭に「//」を書くと、その行はコメントとみなされます。そのため、プログラムとしては無視され、

実行されません。(コメントアウトと言います)コメントは、どのような意味のコードであるかを記すメモとして使われます。

 

 

 

数値と計算

プログラミングでは、数値(数字)を扱うこともできます。数値は文字列と違いクォーテーションで囲みません。
数値は足し算や引き算といった計算もすることができます。足し算には「+」、引き算には「-」の記号を用います。

数値と記号はすべて半角で記述することに注意しましょう。

 

 

文字列と数値

左の図のように、console.log(5 + 2);は足し算の結果である7が出力されます。

一方、「5 + 2」にクォーテーションをつけると、文字列と解釈されそのまま出力されます。
文字列と数値は明確に違うものであることを意識しましょう。

 

 

掛け算と割り算

 

 

足し算・引き算以外の計算の方法も学んでみましょう。
左の図のように、かけ算は「*」(アスタリスク)、割り算は「/」(スラッシュ)という記号を用いて計算することができます。

これらの記号は一般的な算数で用いるものと少し違うので、しっかり覚えましょう。

 

余りの計算

さらに、「%」記号を使うと、割ったときの余りを求めることができます。
プログラミングでは余りの計算を使う機会がよくありますので、しっかりと覚えておきましょう。

 

 

文字列の連結

「+」記号を用いると、文字列同士を連結することができます。左の図のように、

「"にんじゃ" + "わんこ"」とすると、「"にんじゃわんこ"」という1つの文字列になります

 

 

文字列と数値の違い

ここでも文字列と数値の違いを確認しましょう。
"3" + "5" は「"35"」という文字列になりますが、3 + 5 は「8」になります。
「文字列と数値は別物」ということをしっかり意識しましょう。

 

 

変数の利用

ここからは変数について学習します。
変数は、データ(値)の入れ物(箱)です。箱についている名前が「変数名」であり、

箱の中に実際の値(文字列や数値など)が入っています。
具体的な使い方は次のスライドで見てみましょう。

 

 

変数の定義

変数は「let 変数名 = 値」として定義します。プログラミングの「=」は「等しい」という意味ではなく、

「右辺を左辺に代入する」という意味です。「let」は「これから変数を定義します」という宣言で、

その後ろに変数名を書き、値を代入します。

 

 

変数と文字列

これまで見てきたように、変数はクォーテーションで囲みません。
「console.log("name");」のように変数名をクォーテーションで囲むと、nameが変数ではなく「文字列」として認識され、

「name」とそのまま出力されてしまうので注意しましょう。

 

 

変数の特徴

変数は、これまでに学習してきた「文字列」や「数値」とまったく同じように扱えます。
代入されている値が、文字列の場合は他の文字列と連結することができ、数値の場合は計算に用いることができます。

 

 

なぜ変数を使うのか

 

変数のメリット

「同じ値を繰り返し使える」「変更に対応しやすい」という具体例を見てみましょう。

左の図のように似た文章を何度も書くのは面倒ですが、変数を使えば同じ値を繰り返し使え、

楽にコードを書くことが出来ます。また文章が後ほど変更されても、変数を用いていれば、代入する値を変更するだけで

全ての変更に対応できます。

 

 

変数の命名ルール

変数名(変数の名前)は自由に決めることができますが、できるだけ分かりやすい名前をつけるようにしましょう。
また、ES6では変数の名前にいくつかのルールがあります。以下の図を参考に、適切な変数名を付けるように意識しましょう。

 

良い例

 

下は悪い例

 

変数の更新

変数は、一度代入した値を変更することもできます。一度値を代入した変数に、その後再び値を代入すると、

後に代入した値で変数の中身が上書きされます。
定義する時と違って「let」は必要なく、「変数名 = 新しい値」と書けば値が変更されます。

 

 

変数の更新イメージ

下の図で変数の更新のイメージを見てみましょう。
プログラムは上から順に実行されるので、後で代入された値で変数の中身が更新されます。

 

 

変数自身の更新

すでに定義している変数numberの値に3を足したい、というときはどのようにすればよいでしょうか。
これは左の図のようにnumberに3を足して、再びnumberに代入することで実現できます。

「=」の右側のnumberは値に置き換わり、計算された結果が、左のnumberに代入されています。

 

 

変数自身に代入するイメージ

 

 

省略した書き方

 

「number = number + 10」といった書き方には、省略した書き方もあります。 よく使いますので、下の図をぜひ覚えましょう。

 

 

定数について

変数とよく似たものに、定数があります。
定数はletの代わりにconstを用いて定義します。
変数と定数の違いについて、次のスライドを見ていきましょう。

 

 

定数と変数の違い
左の図のように、変数は1度代入した値を更新することができましたが、定数は値を更新することはできません。
右の図のように定数の値を更新しようとすると、コードを実行した際にエラーが発生してしまうので気をつけましょう。

 

変数 let

 

定数 const  → 値の更新ができない

 

定数のメリット

定数のメリットは、「後から値を更新できない」ところにあります。
これは一見不便に感じるかもしれません。ですが、予期せぬ更新を防ぐことができ、より安全なコードを書くことができます。

これはコードの量が増えるにつれて徐々にメリットとして感じると思います。
今後のProgateの演習では、基本的に変数ではなく定数を使っていきます。

 

テンプレートリテラル

これまで文字列や定数の連結には、「+」記号を用いてきました。
ES6では、それ以外の方法として「テンプレートリテラル」という連結方法があります。テンプレートリテラルを用いると、

下の図のように文字列の中に定数(変数)を埋め込むことができます。詳しい書き方は次のスライドを見ていきましょう。

 

 

テンプレートリテラルの書き方

左の図のように、文字列の中で「${定数}」とすることで、文字列の中に定数や変数を含めることができます。
この時、文字列全体をバッククォーテーション(`)で囲む必要があります。
また、右の図のように複数の変数や定数を埋め込むことも可能です。

 

 

バッククォーテーションの書き方

バッククォーテーションは以下の図のように出力します。
USキー(アメリカなどで使用されているキーボード)とJISキー(日本のキーボード)によって出力方法が異なるので注意してください。

 

 

条件分岐について

次に、プログラミングにおいて重要な条件分岐について学びましょう。
プログラミングを学んでいると「ある条件が成り立つときだけある処理を行う」という場面が出てきます。

このようなプログラムを条件分岐と言います。

 

 

if文の書き方

if文を用いると「もし○○ならば●●を行う」という条件分岐が可能になります。ifの後ろに条件式を書き、

それが「成り立つ」場合の処理を{ }の中に書きます。下の図でif文の書き方のイメージを掴みましょう。

 

 

if文のレコード

実際のコードを見てみましょう。
まず左の図は条件式の一例です。「number > 10」の部分は「定数numberの値が10より大きい」という意味の条件になります。
定数numberには12が代入されているので、この条件は成り立ち、処理が実行されています。

 

 

if文を書くときは、インデントをするようにしましょう。
インデントとは日本語で「字下げ」を意味します。きれいにインデントするとコードが見やすくなります。

下図のようにインデントを入れることでifの処理がどこからか一目でわかります。
tabキーを1回押すと、半角スペース2つ分インデントすることができます。

 

 

条件式の出力

if文を使うことができました。次は条件式の部分を詳しく見てみましょう。右の図のように、

先ほどのif文の条件式の部分を出力してみると、「true」が出力されています。このtrueとは一体なんでしょうか?

 

 

真偽値

先ほどの例で出力された「true」は真偽値と呼ばれるものです。真偽値にはtrueとfalseという2つの値しか存在しません。

条件式は、成り立つと「true」、成り立たなければ「false」という真偽値に置き換わります。
よって下の図のように条件式を出力してみると、trueやfalseが出力されています。

 

 

if文と真偽値

前のスライドで、条件式は真偽値で置き換えられることがわかりました。
このことから、if文は条件式がtrueであれば処理が実行され、falseであれば実行されないということがわかります。
if文の条件式がtrueの処理の流れを、下の図で確認しておきましょう。

 

 

大小を比べる演算子

条件式に使った「>」は比較演算子と呼ばれる、大小比較の記号です。
「a < b」は、aの方がbより小さいときtrue, 大きいときfalseになります。
また「a <= b」とすると、aの方がbより小さいまたは等しい(つまりb以下)のときtrueになります。

これは数学で用いる「≦」という記号と似ています。

 

 

比較演算子

比較演算子には、左と右の値が等しいかを調べるものもあります。
「a === b」はaとbが等しければtrue、等しくなければfalseになります。
「a !== b」はその逆です。
この記号は数値だけでなく、文字列同士の比較にも使えます。

 

 

条件式が成り立たない場合

if文の条件式が成り立たない場合に、別の処理を行いたい場合があります。例えば下図のように、

numberの値が10より大きくない場合には「10以下です」と出力する方法を学んでみましょう。

 

 

elseの書き方

下の図のように、if文に「else」を組み合わせると「もし〇〇なら●●を行う、そうでなければ■■を行う」

という処理ができるようになります。if文の条件がfalseの場合、elseの処理が実行されます。

 

 

elseのコード

elseを使った実際のコードを見てみましょう。
左の図は、numberの値が10より大きいかどうかで処理を分けたい場合にif文のみを使用した例です。

この場合、2つのif文を作成する必要があります。
一方、右の図のようにelse文を用いると、1つの条件分岐で同じことを実現できます。

 

 

条件を追加する

ifとelseだけでなく、さらに条件を追加したい場合の方法を見てみましょう。
例えば下図のように「10より大きい」という条件を満たさない中で、「5より大きい」という条件で処理を分岐する方法を学んでみます。

 

 

else ifの書き方

以下の図のように、ifとelseの間に「else if (条件)」を追加することで、if文に条件分岐を追加することができます。
具体的な使い方は次のスライドで見てみましょう。

 

 

「else if」を使った実際のコードを確認してみましょう。
図では条件式2がtrueなので「else if」の中の処理が実行され、コンソールには図のようになります。

 

 

かつ &&

複数の条件を組み合わせる方法を学びましょう。まずは「かつ」についてです。「かつ」は「&&」で表します。

「条件1 && 条件2」は「条件1かつ条件2」という意味で、複数の条件がすべてtrueならtrueになります。
右の図の「10より大きいかつ30より小さい」は、「10 < x < 30」と書くことは出来ません。このようなときは「&&」を使いましょう。

 

 

または ||

次は「または」を表す記号です。
「または」は「||」で表します。「条件1 || 条件2」は「条件1または条件2」という意味です。

この場合は、複数の条件のうち1つでもtrueならtrueになります。

 

 

組み合わせの具体例

if文を使った「かつ」の具体例を見てみましょう。
左の図では、「number >= 10」も「number < 100」もともにtrueなので、処理が実行されています。

 

 

switch文とは

if文以外の条件分岐の方法として、switch文というものを学んでみましょう。
以下のイラストは、信号機の色を表す定数colorの値によって処理を分岐したい、という例です。

このように、ある値によって処理を分岐する場合にswitch文を用いることができます。
具体的な書き方は次のスライドでみてみましょう。

 

 

switch文の書き方

それではswitch文の書き方を見ていきましょう。
左の図のように、「switch(条件の値){ 処理 }」とすることでswitch文を書くことができます。

図は定数colorを定義したうえで、switch文を使ってcolorの値によって処理を分岐させていく例です。

 

 

 

switch文の中にcaseを追加することで処理を分けることができます。
右の図では、定数colorの値が「赤」であるときに「ストップ!」という文字列が出力されるようになっています。
breakについては後ほど説明します。

 

 

 

switch文では分岐の数だけcaseを追加していきます。

図では2つ目のcaseの値に「黄」が指定されており、定数colorの値が「黄」である場合には「要注意」と出力されるようになっています。

 

 

 

注意点

また、switch文ではbreakが非常に重要です。breakとはswitch文を終了する命令です。

breakがないと、合致したcaseの処理を行った後、その次のcaseの処理も実行してしまいます。

そのため、switch文を使うときにはbreakを忘れないように気をつけましょう。

 

 

default文について

先ほど学習したように、switchの条件の値がcaseの値と一致したとき、その部分の処理が実行されます。

caseのどれにも一致しなかった時、defaultのブロックが実行されます。defaultはif文のelseに似たようなものです。

 

 

このようなswitch文の性質を利用すると、if, elseifによる分岐が多く複雑な場合、

switch文で書き換えるとシンプルで読みやすいコードにできます。

 

 

学習①は以上になります。

 

お疲れ様でした!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本日は最終章レコードの追加について学習していきましょう!

 

ではさっそく

 

データの追加について

 

 

INSERT

テーブルにレコードを挿入したいときはINSERTを使います。
INSERTとは「挿入する」という意味です。

 

 

AUTO INCREMENT

多くの場合、idカラムにはAUTO INCREMENTという機能が使われます。
AUTO INCREMENTとは「自動で増加する」といった意味で、データが作成されるときに自動で値が割り当てられます。

※idカラムを省略

 

データ更新について

UPDATE

データを更新したいときにはUPDATEを使います。
複数変更したいカラムがある場合、コンマ(,)で区切ります。

 

 

※WHEREで更新するレコードを指定しないとカラム内の全データが更新されてしまいます。

 

 

※UPDATE実行後はデータを戻すことができません。

実行前に一度SELECTを実行して、操作するデータを確認する習慣をつけましょう。

 

 

 

不要なレコードについて

 

 

DELETE

レコードを削除するときはDELETEを使います。
UPDATEと同様にクエリ実行後はレコードを元に戻すことができないので、

SELECTでレコードを確認してから削除を行いましょう。

 

 

※WHEREで削除するレコードを指定しないとテーブル内の全レコードが削除されてしまいます。

 

 

これまでのおさらい

 

これまでのレッスンで学んだ4つの構文をおさらいしましょう。
UPDATEとDELETEは必ずWHEREで操作するレコードを指定しましょう。

 

 

これでSQLは一通り終了!

 

お疲れ様でした。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ここまで一通り学習してきました!

お疲れ様でした。

この先はビッグデータの活用などでニーズを集めている分析の領域となります。

では、レッツ学習!

 

サイトのデータベースについて

 

3つのデータベースのカラムには以下のような情報が保存されています。
各カラムのデータ型や外部キーなどに注意して、演習画面で実際に確認してみましょう。

 

 

ユーザーの分析

 

usersテーブルには図のようなデータが保存されています。
genderカラムには、ユーザーが男性の場合には「0」が、女性の場合には「1」が保存されています。

 

 

商品の分析

 

 

itemsテーブルには左の図のカラムが設定されており、保存されているデータは右の図のようになっています。
genderカラムには、男性向け商品である場合は「0」が、女性向けである場合は「1」が、男女兼用商品は「2」が保存されています。

 

 

商品1個当たりの利益計算

まず、商品1個あたりの利益の計算方法について説明します。
商品1個が売れた時の利益は「商品の値段 - 商品の原価」で計算できます。
コードを書くときは、右の図のようにpriceカラムからcostカラムの
値を引くことで計算することができます。

 

 

MAX, MIN, SUM, AVG などの集計関数は、図のようにして四則演算と併用できます。
利益、利益率の計算と組み合わせることで、利益が最も大きい商品を求めたり、

商品全体の利益平均を求めたりすることができます。

 

 

ORDER BYもまた、下の図のように四則演算と併用することができます。
利益などと組み合わせることによって、利益の高い順にデータを並び替えることなどができるようになります。

 

 

販売履歴の分析

sales_recordsテーブル

sales_recordsテーブルには、購入された商品のid(item_id)・購入した人(user_id)・

このデータが生成された日(purchased_at)の3つの情報が保存されています。