• ベストアンサー

if文で変数を指定する方法…

素人なので、うまい方法が見つからず悩んでいます。 内容が変化する変数1があります。とりあえず、これを$hen1とします。これがある文字列だったら他の変数($hen2)を○○に変えるというのを実現したいのです。 で、 if($hen1 eq "1"){$hen2 = "文字列1"} else if($hen1 eq "2"){$hen2 = "文字列2"} ~~ という風にしたのですが、なぜかうまく動きません。 いったい何が間違っているのでしょう。もしくはif文で書くこと自体おかしいのでしょうか? 解決方法を教えてください。 お願いいたします。

  • CGI
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

else if → elsif では。

master-3rd
質問者

お礼

ありがとうございました。出来ました。

その他の回答 (1)

noname#48234
noname#48234
回答No.2

if($hen1 eq "1"){$hen2 = "文字列1"} else if($hen1 eq "2"){$hen2 = "文字列2"} ↓ if($hen1 eq "1"){$hen2 = "文字列1";} elsif($hen1 eq "2"){$hen2 = "文字列2";} どうでしょう?

master-3rd
質問者

お礼

ありがとうございました。出来ました。

関連するQ&A

  • perlのif文で・・・・・

    こんにちは。 お聞きしたいのですが、perlのif(A eq B)文で、crypt関数で暗号化した文字列の比較をしているのですが、画面に双方の変数をテスト表示をしてみて、AとBは一致しているにもかかわらず、このif文を飛ばしてしまいます。 暗号化した変数を使うのは初めてなんですが、何か可能性として考えられることはありますか? 自分でも考えられるチェックはしたつもりなんでが・・・

  • if等判定文での定数、変数の記述順序

    perlスクリプトなどで、判定文を記述する際の考え方について、 重箱の隅的な質問になりますが、よろしくお願いします。 (1)if等判定文での定数、変数の記述順序 例えば、ある変数が0であることを判定するのに、結果は同じなのですが、 [] if($a == 0) [] if(0 == $a) のどちらで書く方が良い(理にかなっている)のでしょうか? (文字列でも同じでしょうか) [] if("$a" eq "") [] if("" eq "$a") (2)私はよく上限、下限の判定を行う際に、 [] 0 < x < 10 ということを表現する際に、 数学的に見映え(並び順)が同じになるよう、 [] if((0 < $x) && ($x < 10)){ と書くのですが、(1)のことと照らし合わせると、 [] if(($x > 0) && ($x < 10)){ と書いたり、 [] if((0 < $x) && (10 > $x)){ と書くほうが良いでしょうか。 (3)以上の(1)(2)のことは、標準的なC言語でも同じでしょうか? (4)Perl独特の書き方ですが、1行で済む実行文の場合、 [] 実行文 if(条件文); と書く方が、 [] if(条件文) 実行文; と書くよりも変換効率(?)か何かが良いと聞いたのですが、 どういう理由でどちらが良いとかありますか? この辺の違いはコンパイラが吸収してくれるので、どちらでも良いとか、 何か参考になる文献などもありましたら、ご教示よろしくお願いします。

    • ベストアンサー
    • Perl
  • if文について

    以下のプログラムで期待通りの動きが出来ません、間違いを教えて下さい。 n = 4 For i = 1 To 24 Hen = Cells(n, 3)  If Hen = data(i, 3) Then Exit n = n+13 Cells(z, 6) = data(i, 2) 'ISRC Next 「Hen」の変数と「data(i, 3)」の変数が同じ場合は 「Cells(z, 6) = data(i, 2)」を実行して 違う場合はnに13を足して再度if文の実行を行いnが255を越えたらiを一つ増やしてnを4に戻してiが24になるまで繰り返したいのですが。 PS、「data(i, 3)」は事前に登録済みです。 教えて下さい。 以上

  • If文の条件文の書き方

    お世話になります。 Excelでマクロを作成しております。 内容:  あるセルに、X<=300 というような条件を入れておきます。  ある値、たとえば、500 が来たときに、Xに代入して、  500<=300 という条件式を作り、それが、正しいか、正しくないか  の結果を求めたいと思っています。 このとき、if文の条件文は、値によって、変わらなくてはいけないので、 文字列の置き換え等をして、変数として条件文を作ると、「型が違います」 のエラーになります。 どのように条件文を作ればいいでしょうか?? hani = Cells(1,1).value 'セル1,1に、X<=300 が書かれています。 exp = Replace(hani, "X", 500) '"X"を500と置き換えます。 If exp Then Check = 0 Else Check = 1 End If よろしくお願いします。

  • Excel97で、If文をなんとかしたい

    IF文でなんとかなりそうなんですが、IF文を使った事がなくて。 A列   B列   C列    任意の位置のセルD 数式  文字列   数式  文字列 数式  文字列 数式  文字列 こんな表で、Bの文字列の値と、Dのセルの値が一致した時、Aの数式の値(数字)をCの列に表示させ、BとDの文字が一致しない時は、”エラー”を表示させたいんですが、どういう風にすればいいのでしょうか? IF文を使えばいいのでしょうか? どういう風に、数式を立てればいいのかわかりません。 どなたか詳しい方、教えていただけませんか?

  • if文について

    if文を利用してリストの表示をしようとしています。 ドロップダウンリストは <SELECT name="type"> <OPTION value="all">指定しない </OPTION> <OPTION value="1">タイプA系列</OPTION> <OPTION value="2">タイプB系列</OPTION> となっています。 データはチェックボックスで1か空白で保存されていて、A系列は「s_1」「s_2」、B系列は「s_3」「s_4」「s_5」にチェックが入っているかどうかを振り分けしたいんです。 なので、ドロップダウンリストで「タイプA系列」を選択したら「s_1」「s_2」に1が入っている物のみ表示するというものです。 現在のところこの形です。 if ($FORM{'type'} ne 'all') { if ($FORM{'type'} eq '1'){ if ($s_7 || $s_8 eq 1) { ; } else { next; } }else{ if ($s_9 || $s_10 || $s_11 eq 1) { ; } else { next; } } } このようにやってみましたが全部表示されてしまいます。 どのように直したらOKでしょうか? お願いします。

    • ベストアンサー
    • Perl
  • if文などで使用される条件式で、同じような条件をまとめる方法

    $keyという変数には、aiueo、kakikukeko、sasisuseso、tatitutetoなどの文字列が入ると仮定して、if文でaiueo、sasisusesoの文字列の時のみ、実行させないようにしたい場合、通常は if ($key != "aiueo" && $key != "sasisuseso") {   処理 } としなければなりません。しかし、これだともっと条件が多くなった場合、非常に見づらくなってしまいます。 「$keyと言う変数が、○○、××、■■、・・・以外の値の時」という条件を各場合、もっと簡潔にまとめて書く方法って無いでしょうか? 例えば、if ($key != ("aiueo" && "sasisuseso"))みたいな感じで。 (switchを使う手もありますが、これは他の変数($a == 0など)に関する条件を組み合わせたい場合、面倒になるので) もし、方法などありましたら、教えていただければと思います。

    • ベストアンサー
    • PHP
  • IF文の使い方

    IF文の使い方について教えて下さい.一応ヘルプを見て以下のようなIF文を作ったのですが,文字列と認識されてしまっているようで全く意図したような数字が入りません. なお,IF文を入れたセルは書式で確認しても文字列ではなく,標準になっています. やりたいことは,C列の数字がゼロならB列の数字(単価)を使って,ゼロでなければC列の数字(区別単価)を使ってD列の数量をかけた合計をE列に表示(計算)させたいのですが. 下の例だとEのセルには125*1200が入ってもらいたいのです. 単価    特別単価    数量     合計 B列     C列      D列     E列 125      0      1200    IF(C5=0,=D5*B5,D5*C5)

  • IF文について

    以下を実現するIF文(又は関数)を教えてほしいのですが・・↓ もし、B2のセルに何か文字が入っていたら、 B1のセルに”○”を表示する。 B2のセルに何も文字が入っていなかったら、何もしない。

  • cgiのif文で行を指定。

    ログファイルから任意の行を取り出すために、フォームで行を指定(入力)後、送信ボタンを押すと 表示させるようにしました。 if文はこんな感じです。 if ($NO == ''){ print &all; } else{ print &no; } 1より大きい時と、何も入力しないときはきちんと希望したものが表示されるのですが、 問題は0を入れたとき(ログファイルの1行目を出したい時)に、何も入力されてないと 認識されてしまうのです。 どうしたらよいでしょうか? ※$NOの後の==をeqに変えると何も入っていなくても0と認識されてしまいます。

    • 締切済み
    • CGI