>100 Views
October 23, 25
スライド概要
Notes Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第48回は @For、@While、@DoWhile、@Do について
@ -notes knows community- 2023/08/10 @関数Talk 第48回 公開版 @ Talks around @Functions in Notes and Domino ✔ @For ✔ @While ✔ @DoWhile 阿部 覚 48th ✔ @Do (tw:) @abesat
🍥 🍭 @ 今回も まずは ぐるぐるします @💈 やってるこっちもけっこうぐるぐるしちゃってますがとりあえずおつきあいください
@ @For @While @DoWhile @ で引き続き放談
@まずはおさらい、 @Forはこんな順序での処理を実施 @While と @DoWhile は こんな順序でした @ いずれもCondition(条件)がTrueでなくなると、 式を終了します
前回は、@While と @DoWhile の例を挙げて @ 結果 @Whileの式 結果 @ @DoWhileの式 ん、@While も @DoWhile も同じ戻り値? というところで終わりました
@ 状況によって、同じように使うこともできますが 結果 @Whileの式 結果 @ @DoWhileの式
明確な違いは、@While は 条件が×ならそれでおしまい @ 結果 @Whileの式 結果 @ @DoWhileの式 @DoWhile は条件に関わらず 最低1回はステートメントが実行されるという点のようです
@ ということで、 @DoWhile の Doとは @
@ 1回くらいは の、Do だよ @ と、おぼえておきましょう ※NISSANさんや某事務所さんの許諾は得ていませんので 公開版では絵を外しまーす
@ところで、次に着目したいのは、この部分です @For @While @DoWhile @ ここって 、任意の数のステートメントを 記述できるわけですが、 それってあの関数に似ていない?と思いまして
@ @Do @ で放談
@ @Do 骨組み化するとこんな感じ @Do( statement ; ... イメージとしては、 @ ・ただ、引数内の式を順番に実施してくれる関数 )
たとえば… @ いやいや、それであれば @Do を使わなくても コレだけで済むわけで 通常は ほかの@関数式の中など ひとつのステートメントしか書けない箇所に使います @
@@For、@While、@DoWhile は @Do の変形って言えない? @For @While @DoWhile @Do @
@1回しか回さない、こんな式なら @Do と同じじゃない? やり; たい; こと @ いえ、 @Do でしかできないことがありました
@ @Do ヘルプによれば 「表現式を左から右へ評価し、 リスト内の最後の表現式の値を返します。」 @
@もっとわかりやすく申しますと、戻り値に違いがあります ヘルプの記載によれば @For、@While、@DoWhile の 戻り値(いずれも同じ記述です) 「実行中にエラーが発生しなければ True (1) が返されま す。条件式の値が数値以外のときは、「予期しないデータ 型」エラーが発生します。」 @Do の 戻り値 @ 「最後の表現式の値が返されます。」
@ つまり @Do では、 最後の引数の結果を戻り値とすることができます (少々出鱈目なサンプルですが💦) もしこの式が計算結果フィールドのValue式だった場合には a-d の結果がフィールド値になるわけです @
@そんな @Do は、 @For、@While、@DoWhile の中でも 使うことができるわけで とくに @For では、 こんな使い方ができちゃうのではないかというお話を… @For では、 処理の順序と引数の順序が 一緒でないところが ちょっとわかりづいんですが 前回、stetement 部分を略しても 動くことがわかったので @
@ stetement 部分にあたる処理を、 @Do を使って condition(条件)部分に書いてしまいます @Do は 最後の引数の結果が戻り値になりますので 本来の条件 i <= 2 の結果が ちゃんと機能するわけです @
@ 結果は異なってきますが stetement 部分にあたる処理を、 @Do を使って increment(増分)部分に書いても動作します @ ほかの工夫例として i, j 2つの変数を initialize(初期値)と increment(増分)で記述し 2つの条件が満たされないと ループが完了しないようにすることも可能かと
@おまけ おまけ 前回 @For で紹介した 「はい」を選択しないと終わらない、いじわるプロンプト @While や @DoWhile でも行えました♥ ヘルプによれば 引数はひとつだけ つまり@While や @DoWhile でも statements が省略可能でした♪ @
@ 今回もお付き合い ありがとうございました 😀 @