
復習編その2 while「Vol.2 制御構文:ノンプロ研初心者向けプログラミング講座【GASコース第9期】」
画像は「復讐」で検索したら出てきた炎です。
復讐の炎なんだろうか?
↓これの続きというか補講というか。
演習2-12
x=1から、xの値を2,4,8,…と倍々にしていきながら、xの値をログ出力するスクリプトを作成しましょう。
なお、xの値が100を超えない間、実行するものとします。
↓こんな感じで、提出していたが、これは間違いだった。
※ノンプロ研ではslackに課題を提出する。私は、後で見返す必要のあるものはブックマークしている。slackでは講師やTA、同期やコミュニティのみなさんがリアクションくれたりコメントくれたりして楽しい。
forの間違い例 その1
このコードを実行すると、↓こうなる。
xの値を2,4,8,…と倍々にする必要があり、これだと2ずつ増えていくことになり課題に合っていなかった。よく読め自分。
さて、改めて考える必要がある。
上限100の間に反復する処理、ということになる。
なので、forかwhileが適していそうな雰囲気がある。
whileは下手こくと無限ループするからちょっとこわい。
しかし良い機会なので両方考えてみる。
forの間違い例 その2
ログ表示したあとに2をかければいいじゃん?と思ったが、これだとforの構文の最後の増減式が欠落して、実行しても虚無の時間を過ごすだけだった。
function myFunction2_12_for() {
for (let i = 1; i <= 100;) {
if (i % 2 === 0) {
console.log(i);
i = i *2;
}
}
}
for構文
for(初期化式; 条件式; 増減式){
// 処理
}
forの後のカッコ内は、初期化式; 条件式; 増減式 の三つを取る。なので、先ほどの間違い例その2は、最後の増減式がない。ということは、ここを正しくすれば動きそう。
forの間違い例 その3
増減式を書いて、これでいけるじゃろ、と思ったら無慈悲なエラー。よくよくみたら、増減式の最後に;セミコロンがいた。最後はセミコロンいらんのよ。
ここまでくれば、もうOKですね。
というわけで演習の文章に応じたログ出力できました。
と、おもったら、まだ間違っていた。
if (i % 2 === 0)
が余計だった。1から順に倍々になるので、スタートが2になっていた。
もう~~~~しかっりして~~~~自分~~~~~~。
forがなんとかなったので、whileでも考えてみたいと思います。
まずwhile構文を確認します。
while構文
while (条件式){
// 処理 ※条件式がtrueの間、繰り返しをする
}
while条件式としては、100上限なので、x <= 100 でいいかと思います。
ここで xが出てくるので、xさんのスタートの数を先に変数で宣言し、
whileの間は表示→倍にする、という考え方でいけそうな気がします。
いけました。
正直に言うと、これは先に同期の皆さんの回答を見て、それがどうしてこういう書き方になるのか考えました。
forの間違いと、whileロジックの考えでだいぶいい復習になった気がする!
予習もがんばろー!
いいなと思ったら応援しよう!
