• ベストアンサー

パールスクリプトのif else文について

y_okuの回答

  • y_oku
  • ベストアンサー率62% (25/40)
回答No.3

データと月の関係の法則が決まっているならば、if elseは使わないでもいいと思います。 質問を参考に、データを配列に入れておいて配列のindexでデータを表示してみました。 $month-1としているところを、適当な「独自の法則」の計算式におきかえれば、 if elseをいちいち書くよりもきっと簡単ですよ。 ------------------------------------------------------- @data1=('猫', '犬', ); # 月ごとのデータ1 @data2=('鳥', '申', ); # 月ごとのデータ2 $month=1; # 例えば1月。 print "データ1は$data1[$month-1]\n"; print "データ2は$data2[$month-1]\n"; -------------------------------------------------------

siritay
質問者

補足

ご回答ありがとうございます。 せっかくご説明頂いたのに私の質問の仕方が悪かったため イマイチ理解できません。 私がアップしましたif else文がどのように配列に置き換えることが できるのか具体的にお見せ頂けますでしょうか? 大変お手数をおかけしますが、よろしくお願い致します。

関連するQ&A

  • else if文の順序を変えることに意味がありますか?

    else if文の順序を変えることに意味がありますか? 「スプライトに記述したクリップアクションです。 実行される内容はどうでも良いのですが、 else if文の順序を変えることに意味がありますか?」 ×(2)の部分だけが実行されません。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5);     } } ○全て実行されます。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1);     } } 「(1)と(2)の順序を変えただけで正しく実行されるようになりました。 しかし、なぜ?上手くいったのか、どこが間違いなのか分かりません。 else ifに順序なんかあるんでしょうか? こられのスクリプトに違いがありましたら、教えていただけませんか?」

    • ベストアンサー
    • Flash
  • シェルスクリプトのif文

    シェルスクリプトのif文について質問です。 あるファイルが存在しないときだけ処理を行いたい場合、 下記のような記述をするしかないのでしょうか? if [ -e /tmp/test.txt ]; then  ダミー処理(val1=1など意味のない処理)  (ダミー処理を入れるのは何も書かないとエラーとなってしまうため) else   行いたい処理 fi elseを使わずに if  fi だけですますことはできないでしょうか? -eはファイルが存在するならば真なので 逆に意味が真となるようにしたいのですが・・・

  • if文を簡単に

    CGIを改造中です。 オプションメニューを設置しました。 ただ、検索などに利用したかったので、名前と値を別のものにしています。(犬=1,猫=2のように) データ入力画面の方はリストを入力したのですが、名前が50を超えるのでリスト表示画面や検索結果表示画面でif文を大量に書くのは面倒です。 (if($name eq1){print "犬\n";elsif~) どうにかしてこれを簡潔にすることは出来ないものでしょうか?

  • 条件文でelseはつけるべき?

    if文で条件文を作るときに、どういう風に作れば最適なのか考えています。 「男」か「女」かを判断する時のif文として、データ的にどちらかしかないので、以下のようになると思います。 --------------------------- if 「男」 {   処理1 } else if 「女」 {   処理2 } --------------------------- 仕様的にもどちらかしかないのですが、こういう場合でもelseを付けた方が良いのでしょうか? --------------------------- if 「男」 {   処理1 } else if 「女」 {   処理2 } else {   エラー処理 } --------------------------- 後々の仕様変更で、判断できない場合は「不明」などが追加される可能性もあると思います。 その場合に、仕様変更に対応してないとエラー処理が動くようにしておくべきでしょうか? みなさんは、必ずelseを書いてますか?

  • if文でelseが実行されない

    function jump(){ if (point_x != ""){ location.href="new_diary.php?x="+point_x+"&y="+point_y; } else { alert ("場所をダブルクリックで指定してください。"); } } このような文で、point_x != ""のときは別ページに飛んでくれるのですが、 elseのときにアラートが表示してくれません。 初歩的な質問だと思いますが、宜しくお願いします。

  • ネストしない複数のif文でelseは必要でしょうか

    if文についての疑問を質問させてください。 if文はelseを挟むことで複数指定したり入れ子にしたりして使えますが、 elseを未入力で下記のように複数指定することは問題があるのでしょうか。 また、このように24個のifを並べるという書き方はよろしくないものなのでしょうか。 <script type="text/javascript"> (function() { var image_obj = new Image(); image_obj.src = "../image/"; var jikan_obj = new Date(); var htime = jikan_obj.getHours(); if(htime==0){alert('日が変わりました');} if(htime==1){alert('夜中です');} if(htime==2){alert('2時です。');} if(htime==3){alert('真夜中です');} if(htime==4){alert('もうじき朝です');} if(htime==5){alert('新聞が届きました');} if(htime==6){alert('朝です');} if(htime==7){alert('忙しいです');} //これが23まで続きます。 if(htime==23){alert('もうじき日が変わります');} })(); </script>

  • 「for next」文と「if then else」文

    両方とも「くり返し」をさせるものですけど、 for nextにできてif then elseにできないことって ありますでしょうか? 僕は無いと思うのです。 その理由は for next文は等差数列に関係したくり返しをさせるものであり if then else文は等差数列とは関係の無い繰り返しもできるし、等差数列に関係あるくり返しもできるからです。 for nextの「等差数列に関係のあるくり返し」とは 例えば for i=1 to 100 step 2 のような場合、 これは、初項1、公差2、末項100 の等差数列を用意したことを意味しますよね? つまりfor next文では「等差数列を使ったくり返し」しか出来ないのに対し、 if then else文は等差数列に関係なく、「一般的なくり返し」が出来るものだと思うのです。 つまり、for next文は存在理由が無いと思うのです。 こういう理解であっていますでしょうか? よろしくおねがいします。

  • if文

    if文の書き方でHTMLをphpのif文やwhileなどで挟んで表示する方法なんですがendifをやらなくても表示できたのですがこの書き方でもいいでしょうか? <?php $sample=6; if ($sample > 5) { ?> <p>5より大きいです。</p> <?php } else { ?> <p>5より小さいです。</p> <?php } ?>

    • ベストアンサー
    • PHP
  • シェルスクリプト(if文)

    引数で指定されたファイルがあるばあい、ファイルの末尾5行を表示し、ない場合は「ファイルパス in not found」と表示されるシェルスクリプトを作成したい。 それで偽のときのの実行結果がうまくいきません。 どこを修正すればいいでしょうか? 回答の程宜しくお願い致します。 実行結果 [root@Manabe root]# . filefile /etc/pass tail: /etc/pass: そのようなファイルやディレクトリはありません ソース #!/bin/bash if [ -f$1 ];then tail -5 $1 else echo "$1 in not found" fi

  • 以降のスクリプトを実行せずに終わるシェルスクリプトの書き方

    Linux上で動かす以下のようなシェルスクリプトを作っています。 ▼------------------------------- if [ -d /home/aaa ]; then   処理1 else   処理2 fi 処理3 ▲------------------------------- この場合、/home/aaaが存在するかどうかに関わらず、 「処理3」は実行されてしまいます。 これを、 「/home/aaaが存在しない場合は処理2を行ってからスクリプトを終了する」 といった内容にしたいです。 現状はそれの書き方が見つからないので、処理1の次の行に処理3を書き込んで同じ結果にしています。 (そのためどんどんif文の階層が深くなり、全ての記述がif文の中に入っていく・・・) エクセルのVBAで言うところの、Exit Sub に該当する記述が理想的です。 そのような書き方がありましたら教えてください。