Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 100W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890 (2025年4月26日 13:07 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
日本語プログラミング言語Mindの小技「もう一度」について説明したいと思います。
日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方
この小技に関連するMind言語マニュアルの記述はMind8マニュアルに記載があります。
3 制御構文
ここから~繰り返す
繰り返し処理の最も標準的なものである。次のような構文で用いる。(赤字が構文の基本要素)
構文= ここから
・・・・・・・・・・・・
・・・・・・・・・・・・
<条件値発生処理>
ならば 打ち切り
つぎに
繰り返し
~引用略~
「もう一度」は、〔ここから…繰り返す〕の文あるいは、次に解説する〔回数指定し…繰り返す〕の構文で用いることができ、強制的に、繰り返しの最初に戻す効果を持つ特殊な単語である(「打ち切り」の逆のような働きである)。
「もう一度」を使ったサンプル構文は割愛させていただいております。ぜひ、オンラインマニュアルの該当箇所を開いて原文を読んでください。
本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。
■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版
本来であればMindのループ構造構文を最初に解説するべきところではありますが、それは別の機会にゆずって、ここではいきなりMindのループ構文に付随して特徴的ないいまわしの単語「もう一度」について説明いたします。
「もう一度」はループの先頭に処理を復帰させる単語です。他のプログラミング言語での「continue」文に相当します。
「continue」を直訳すると「続く」となりますが、直訳された日本語の語感からのイメージに比べて、この場合の効用として想起されるべきイメージとしは「もう一度」のがわかりやすいですね。
Mindは特定のひらがな助詞以外の漢字に続くひらがなは無視されますので、次節のサンプルソースのように「もう一度やりなおす」と冗長表現するのもよりわかりやすいですね
onceagain.src
ループの先頭からもう一度やりなおすとは (・ → ・)
カウンタは 変数
カウンタに 0を 入れ
ここから
カウンタを 一つ増加し
カウンタが 10より 小さい ならば もう一度やりなおす つぎに
カウンタが 20より 小さい ならば カウンタを 数値表示し 改行し つぎに
カウンタが 30より 大きい ならば 打ち切り つぎに
繰り返す。
メインとは (・ → ・)
ループの先頭からもう一度やりなおすこと。
「ここから~繰り返す」構文はそれ自体として打ち切り条件を持ちませんので、なんらかの変化する状態値をループ内で変化させ、状態値が打ち切り条件に満たされた場合は「打ち切り」するを記述します。
このサンプルでは単純に、「カウンタ」という変数を宣言し、0で初期化してからループの先頭でインクリメントして、その「カウンタ」の値を判定して、打ち切りを行っています。
カウンタが 30より 大きい ならば 打ち切り つぎに
これはカウンタが30になったらループを打ち切ることを意味します。
つづいて、本体処理ですが、とりあえずカウンタをコンソール出力しています。
カウンタが 20より 小さい ならば カウンタを 数値表示し 改行し つぎに
この構文自体は、カウンタが20になる前までならば、カウンタをコンソール出力します。これだけの場合は1から出力するはずですが、後述の実行結果では10から出力しています。
それは下記の構文がカウンタが10になるまでは後続処理をスキップさせているからです。
カウンタが 10より 小さい ならば もう一度やりなおす つぎに
Mind標準単語名は「もう一度」ですが、筆者の味付けでコンパイラが無視するひらがなの「やりなおす」を付け足しています。これで問題なくコンパイルされ実行できるのは次節の実行結果のとおりです。
ではコンパイルしてみます。下位ライブラリはfileを指定します。
Mind9
下図はMind9βです。
C:\developments\vscode\mind9>mind onceagain file
日本語プログラミング言語 Mind Version 8.11 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> onceagain.exe
Mind8
C:\developments\vscode\mind9>mind onceagain file
日本語プログラミング言語 Mind Version 8.07 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> onceagain.exe
Mind7
C:\developments\vscode\mind9>mind onceagain file
日本語プログラミング言語 Mind Version 7.5 for Windows
Copyright(C) 1985-2004 Scripts Lab. Inc.
Single user license. Serial No:********
コンパイル中 - 終了
Coping.. C:\mind7\bin\mindexec.exe -> onceagain.exe
つづいて実行してみます。
Mind7の結果です。記述は割愛していますがMind8/9βも同じです。
C:\developments\vscode\mind9>onceagain
10
11
12
13
14
15
16
17
18
19
以前ご紹介した小技の「等価」を使って、同じく以前ご紹介したように、「ならば~つぎに」の条件分岐構文の日本語表現を少し調整したバージョンとして下記のように書くこともできます。こちらの実行結果も前記同様です。
onceagain2.src
ならは ならばと 等価。
しますは つぎと 等価。
ループの先頭からもう一度やりなおすとは (・ → ・)
カウンタは 変数
カウンタに 0を 入れ
ここから
カウンタを 一つ増加し
カウンタが 10より 小さい なら もう一度やりなおし します
カウンタが 20より 小さい なら カウンタを 数値表示し 改行 します
カウンタが 30より 大きい なら 打ち切り します
繰り返す。
メインとは (・ → ・)
ループの先頭からもう一度やりなおすこと。
この小技「もう一度」を使った記述例の記事はまだありません。見つけたら教えてくださいね。
いかがでしたでしょうか?なにかの参考になれば幸いです。2025年は日本語プログラミング言語Mind生誕40周年です。
本記事シリーズのご紹介
本記事シリーズ「日本語プログラミング言語Mindの小技」は「日本語プログラミング言語Mind生誕40周年プロジェクト」の一環です。
興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできますよ。
Mindプログラミングマニュアル(基本文法)ページから気になるお題の構文を選んで、この記事のようにサンプル実装実行してQiitaにアウトプットしてみましょう!
筆者はMind7/8/9βで検証しておりますが、もちろんMind8だけでもじゅうぶんです。またお題が既存記事とかぶるのはまったく問題ありません。同じお題でみなさまの多様斬新なサンプルをお待ちしております
面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう