【GAS基礎編16】ループ基本編のテスト!
おはようございます!MARIEです(`・ω・´)ゞ
前回までGASのループ、for、while、break、continueを学んできましたね!
これらはループの基礎知識となります。
今日はその基礎知識をちゃんと覚えたかのテストをやりたいと思います!
では、以下さっそくテストに入りましょう。
ループのテスト!Theチャレンジ!
1から100の整数のうち、奇数だけを足した値を出力してください。
※1+3+5+7+9….. + 99 + 100 = 2500 になるので「2500」が出力されたら正解となります!
function loopTest() {
let total = 0;
//出てくるのはforとif
//わからない時は、過去記事を振り返ったりググったりしましょう
console.log(total);
}
上記のプログラムを元に、答えの2500を出力できるプログラムを完成させましょう( `ー´)ノ
以下解説~答え
順番に考えていきます。
【for】
forは「初期化式(初期値);」「条件式(終了値);」「増減式(i++);」という構成でしたね!ということは、プログラムはこうなります。
function loopTest() {
let total = 0;
for (i = 1; i <= 100; i++) { //「初期化式;条件式;増減式;
total = total + i;
}
console.log(total);
}
【if】
次は、if。以下のプログラムはもう答えなのですが、プログラムを見ながら解説をしていこうと思います。
function loopTest() {
let total = 0;
for (i = 1; i <= 100; i++) { //「初期化式;条件式;増減式;
if (i % 2 === 1) {
total = total + i;
}
}
console.log(total);
}
上記のプログラムで使っている(i % 2 === 1)ですが、「厳密等価」といって、左辺と右辺が等しく、データの型も同じ場合、trueを返すという意味を持つ比較演算子です。
ということは、iは1~100の整数です。それを「%」を使った剰余演算子で計算しています。つまり、例えばiが3だった場合、余りは1になります。また、iが5だった場合も余りは1になります。もし(if)余りが1とイコールの場合は足し算をするというプログラムの内容になっているということです。
私うまく説明できていますか?(゜-゜)
念のため、プログラムを上から説明していきますね。
「let total = 0;」totalという変数の中身は0です。
「for (i = 1; i <= 100; i++)」ここで、1~100を1つずつ足してくださいという初期化式;条件式;増減式;を定めています。
「if (i % 2 === 1)」では、もし1~100の整数のうち奇数であればという指示をしています。
「total = total + i;」は最初に定めた(total=0)+(1~100の奇数)を足した数がtotalになりますよという意味を表しています。
「console.log(total);」そして最後に、ログを出力しましょうということです。
どうですか?理解して解くことはできましたか?(゜-゜)
ちなみに前回学んだ「continue」を使った場合は、以下のプログラムが正解です。
function loopTest() {
let total = 0;
for (i = 1; i <= 100; i++) {
if (i % 2 === 0) {
continue;
}
total = total + i;
}
console.log(total);
}
テスト提出用のプログラム
以下、コメントを消し、インデントも揃え、綺麗にしてみました!
function loopTest() {
let total = 0;
for (i = 1; i <= 100; i++) {
if (i % 2 === 1) {
total = total + i;
}
}
console.log(total);
}
では宿題です
テストがやっと終わったのに宿題があるんかい!そう思ったあなた、安心してください。今日の宿題は簡単です( `ー´)ノ
宿題は以下です。
1から100の整数のうち、偶数だけを足した値を出力してください。
今日テストの回答で書いたプログラムの一部分を変えると良いです!
ではまた次回よろしくお願いいたします(`・ω・´)ゞ