ここから本文です

COBOLの質問です! IF I-人物 = 一般人 THEN MOVE 一般 TO ファイルa EL...

aug********さん

2017/6/2622:46:07

COBOLの質問です!

IF I-人物 = 一般人
THEN
MOVE 一般 TO ファイルa
ELSE
MOVE 芸能 TO ファイルb
END-IF.
上記のIF文に下記条件を追加したIF文が分かりません

。教えて下さい。
《条件》
1.エキストラはファイルaに出力
2.芸能人で男性はファイルbに出力し、女性はファイルaに出力
3.芸能人で年齢が20歳以下はファイルbに出力し、20歳以上はファイルaに出力

閲覧数:
65
回答数:
2

違反報告

ベストアンサーに選ばれた回答

ril********さん

2017/7/205:08:32

ご質問の2と3の条件が複合式なのか並列式なのか判らないので、並列式で記入しました。

1 IF (I-人物 = 一般人) OR (I-人物 = エキストラ)
1 THEN
2 MOVE 一般 TO ファイルa
1 ELSE
2 IF I-性別 = 男性
3 MOVE 芸能 TO ファイルb
2 ELSE
3 MOVE 芸能 TO ファイルa
2 END-IF
2 IF I-年齢 <= 20
3 MOVE 芸能 TO ファイルb
2 ELSE
3 MOVE 芸能 TO ファイルa
2 END-IF
1 END-IF.

ただし、これは保守を考えると好ましくないので、普通は以下の記述にします。

1 EVALUATE I-人物
1 WHEN 一般人
1 WHEN エキストラ
2 MOVE 一般 TO ファイルa
1 WHEN 芸能人
2 EVALUATE I-性別
2 WHEN 男性
3 MOVE 芸能 TO ファイルb
2 WHEN 女性
3 MOVE 芸能 TO ファイルa
2 WHEN OTHER
3 DISPLAY '性別エラー' UPON SYSOUT (またはCONSOLE)
2 END-EVALUATE
2 EVALUATE I-年齢
2 WHEN 0 THRU 20
3 MOVE 芸能 TO ファイルb
2 WHEN OTHER
3 MOVE 芸能 TO ファイルa
2 END-EVALUATE
1 WHEN OTHER
1 DISPLAY '人物エラー' UPON SYSOUT (またはCONSOLE)
1 END-EVALUATE.

  • ril********さん

    2017/7/205:21:07

    すみません、一部訂正があります。
    MOVE命令だけではファイル出力されません。
    1 EVALUATE I-人物
    1 WHEN 一般人
    1 WHEN エキストラ
    2 MOVE 一般 TO ファイルa
    2 WRITE ファイルa
    1 WHEN 芸能人
    2 EVALUATE I-性別
    2 WHEN 男性
    3 MOVE 芸能 TO ファイルb
    2 WRITE ファイルb
    2 WHEN 女性
    3 MOVE 芸能 TO ファイルa
    2 WRITE ファイルa
    2 WHEN OTHER
    3 DISPLAY '性別エラー' UPON SYSOUT (またはCONSOLE)
    2 END-EVALUATE
    2 EVALUATE I-年齢
    2 WHEN 0 THRU 20
    3 MOVE 芸能 TO ファイルb
    3 WRITE ファイルb
    2 WHEN OTHER
    3 MOVE 芸能 TO ファイルa
    3 WRITE ファイルa
    2 END-EVALUATE
    1 WHEN OTHER
    1 DISPLAY '人物エラー' UPON SYSOUT (またはCONSOLE)
    1 END-EVALUATE.

  • その他の返信(3件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

YOZAKURAさん

2017/6/2623:49:08

「I-人物」にはどのようなデータがセットされるのですか?
一般人と芸能は分りますがエキストラ、芸能人で男性、芸能人で女性、芸能人で年齢が20歳以下、芸能人で年齢20歳以上、これらも「I-人物」にセットされているのですか?、それが不明です。

なお、
IF I-人物 = 一般人 THEN MOVE 一般 TO ファイルa ELSE MOVE 芸能・・・・
の一般人、一般、芸能は、"一般人"、"一般"、"芸能"だと思います。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる