SRC質問掲示板Mk2
(現在 過去ログ119 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■21063 / inTopicNo.1)  Info関数を使用したIf文についての質問
  
□投稿者/ harimayado -(2008/06/28(Sat) 12:25:50) [ID:NtDqZ0fh]
    現在作っているインクルードにて
    ・特定のスキル(二つのうちどちらか)を所持している際

    ・持っていれば「○」
    ・持っていなければ「×」を表記する。

    といった文を作りたいと考えています。
    しかし、自分ではどう考えても

    If Info(対象ユニット, 特殊能力所有, スキル1) Then

    C_YES[1] ○

    Else

    C_YES[1] ×

    EndIf

    If Info(対象ユニット, 特殊能力所有, スキル2) Then

    C_YES[1] ○

    Else

    C_YES[1] ×

    EndIf

    としか書けません。
    この文をなるべく短くしたいのですが、何か良い方法はないでしょうか?
    返答お待ちしています。
引用返信/返信 削除キー/
■21064 / inTopicNo.2)  Re[1]: Info関数を使用したIf文についての質問
□投稿者/ 中箱 -(2008/06/28(Sat) 14:41:26) [ID:TdSzoAHN]
    2008/06/28(Sat) 14:49:49 編集(投稿者)

    この場合、Info関数に関わらず、Ifコマンド一般の話になりますね。


    >・特定のスキル(二つのうちどちらか)を所持している際
    >↓
    >・持っていれば「○」
    >・持っていなければ「×」を表記する

    まず、提示されたものの場合、
    ・スキル2を持っていれば「○」持っていなければ「×」を表記する
    ・スキル1を持っているかどうかは結果に影響しない
    となっています。


    方法は幾つもありますが、行数を短くしたいのであれば「or」演算子を使うのが一番でしょうか。
    「or」の使い方の例は、SRC_WikiのQ613(http://www.src.jpn.org/neko/wiki/index.php?%A5%B7%A5%CA%A5%EA%A5%AA%BA%EE%C0%AE%B1%FE%CD%D1%CA%D4#Q613)にあります。

    おそらく、最短4行まで削れるかと。
    (C_YES[1] は変数(配列)ですよね?)



    PS.or の部分に限らずQ613を一通り見ておくと、今後条件分岐させたい場合の役に立つかと思います。
    もちろん今一度に全部理解する必要は無いでしょうけれど
引用返信/返信 削除キー/
■21065 / inTopicNo.3)  Re[2]: Info関数を使用したIf文についての質問
□投稿者/ harimayado -(2008/06/28(Sat) 15:28:04) [ID:NtDqZ0fh]
    早い返信ありがとうございます。
    試しに[or]を使用してみたところ、短縮することに成功しました。

    [or]や[and]といった式の事を完全に忘れていた…
    これまでも同じような事柄で悩んでいたので早速調整してきます。

    本当にありがとうございました!
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -