過去の桐井戸端BBS (桐ver.8)
5444 if 〜 end / break の挙動 悲しげ 2000/04/07-14:57
次のような処理があります。
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
絞り込み [なんとか],……
if(&選択件数>0)
 絞り込み [なんとか]{&期間1<[]=<&期間2}
 cond(&選択件数=0) break   /*★*/
 行集計 データ行=無効,並べ替え=しない\
  ,総計{[なんとか]#件数,……
 &なんとか=[なんとか]+……
 行集計解除
 絞り込み [かんとか]=&なんとか
 cond(&選択件数=0) break   /*★*/
 項目集計 [かんとか]
 &かんとか=&合計値
end
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
すると、★印の break のところでエラーとなります。
if 〜 end / break を使わないで、同じことを次のように「ケース」
で記述するとまったく問題はありません。
(なお、「cond」と「条件」は無関係でした)
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
絞り込み [なんとか],……
ケース開始
 ケース(&選択件数>0)
  絞り込み [なんとか]{&期間1<[]=<&期間2}
  条件(&選択件数=0) ケース中止   /*★*/
  行集計 データ行=無効,並べ替え=しない\
   ,総計{[なんとか]#件数,……
  &なんとか=[なんとか]+……
  行集計解除
  絞り込み [かんとか]=&なんとか
  条件(&選択件数=0) ケース中止   /*★*/
  項目集計 [かんとか]
  &かんとか=&合計値
ケース終了
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

と云うわけで、どなたか再現性を確認していただけると有り難い
です。ちなみに私は、訳あってv8はsp3です。
5448 Re:if 〜 end / break の挙動 bonito 2000/04/07-16:43
記事番号5444へのコメント
悲しげさん、ポップコーン、もう少し早く知りたかった。
私の場合、今更全部は書き換えられないし、まぁディスクトップ
のアイコンが(うちは6個くらいだし)、直接触れるのも便利では
あるので・・・当分オーバーラップ堅持(守旧)派で行こうかと…。
でもV7の時にK3がポップコーンのサンプルと若干の説明をしてくれていたら、
ずいぶん多くの、DOSからの移植組の人が大海の荒波に翻弄されずにすんだんじゃないか、
なんて思ったりします。

さて break ですが、(確認しましたが) if構文中では使用が許可されていないようですね。
条件等を付けずに break をKEVのif構文中に書くと、立ち上げた途端、コマンドエラーになります。

そもそも、オンラインマニュアル(help中のhtm)に
「if 説明 ケースコマンドの別表記です」とあるのが、どうなんでしょうか?
ある種の間違いかな…と。
それは switch case〜endでしょうと( ケース開始 の所に記載はされていますが)…。
当然ですが、switch case構文中では break はききますね。

以上、とりあえずご報告、申し上げます。
5453 Re:if 〜 end / break の挙動 悲しげ 2000/04/07-21:10
記事番号5448へのコメント
どもっ、bonitoさん、
早速のご確認ありがとうございました。
ところで、sp4上でですよね?

ちなみに、V8ヘルプでは確かに示唆している程度ではありま
すが、V7の一括リファレンスの中では、if 〜 end から強制的に
抜けるのは break と明記してあります。

一応、K3に報告しておくことにしましょう。(^^;)

ところで、「ポップコーン」と云うのは、フォームの表示形式「ポップアップ」の
意図的な誤変換であって、#5438へのコメントを内包しているとご理解下さい。

5482 Re:if 〜 end / break の挙動 悲しげ 2000/04/09-23:42
記事番号5453へのコメント
この点につき、以前に自分で書いた記述で不思議なものを見つけました。
--------------
loop
 ……
 if(なんとか)
  ……
  break
 end
 ……
end
--------------
if … end範囲の挙動に捕らわれていた私は、この記述を見て一瞬不思議な気持ちになりました。
上記記述では確かにif … end範囲の中でbreakは利いています。
ただし、この場合のbreakは、ケース脱出ではなくて、繰り返しループ脱出の意味で生きているようです。
と云うわけで、ケース脱出として使えないことの意味も、不定を避けると云う点で、何となく想像できそうな気もします。
が、やはりどうもすっきりしませんね。代替構文を何とか考えてほしいです。

何でもかんでもendで締めるってのも、見通しがよくないですね。
ここはやはり、日本語標記に戻すべきでしょうか?(^^;)

戻る