• ベストアンサー

if文の書き方について

まず、次の書き出しをご覧下さい。 if($aa == $ide) { if($bbbb == $passw) { これは、$aaと$ideが等しければ、 間髪をいれずに、$bbbbと$passwが等しいかも調べたいと思って書きました。 この書き出しで、プログラムエラーが発生しました。 書き出しになにか問題があるのでしょうか? もしも問題が無ければ、おそらく上記に続くプログラムが間違っているのでしょうが、 この書き出しが正しいかどうかご存知の方はいらっしゃいますでしょうか? よろしくお願いいたします。

  • Perl
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
  • ns-iroha
  • ベストアンサー率20% (1/5)
回答No.3

まず、質問の仕方についてですが、「プログラムエラーが発生した」とはどういうことなのかをきちんと明記してください。 コンパイルエラー(言うまでもありませんが、Perlはスクリプト実行前に、内部でコンパイルしています)が発生するのか、実行時にエラーが出るのかで、回答の仕方が異なります。 しかも、提示された部分だけでは、何が原因かを特定することができないので、関与する部分は全て提示してください。 提示されたスクリプトには4つの変数があり、比較演算子「==」を用いていますが、変数の中に文字列が格納されていたとしても、これが原因でエラーになることはありません。期待する挙動を示さないことがありますが、エラー発生とはならないので、違う箇所を確認してみてください。

investorgoo
質問者

お礼

ご丁寧に有難うございました。 私はパールもCGIも全くの初心者です。 ふとしたことがきっかけで、HTML・パール・CGIをまとめて勉強しています。 本来であれば、順序良く勉強するのがいいのでしょうが、事情があって、それもままなりません。 高度な物理計算のようなシュミレーションプログラムを目指しているわけではなく、よくあるショッピングサイトの構築をしたいな…と思っているのです。 これからも頑張りますので、また機会がございましたらよろしくお願い申し上げます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

この書き出し部分(提示された部分)で文法エラーがあるということはありません。(use strict;しているのにいきなり変数を使っているとかなら別ですが) エラーメッセージや、 できたら、前後の部分も補足して下さい。

investorgoo
質問者

お礼

やっぱり、別の箇所でしょうね…。 ありがとうございました。 少なくとも、質問の内容に関しては疑念が解けたので嬉しいです。

回答No.2

変数に入っているのは数値ですか? もし文字列なら「==」ではなく「eq」です。 それ以外は問題ないでしょう。

investorgoo
質問者

お礼

昔BASICをかじっていたのですが、他の言語の変数は文字も数値も表記が同じなので苦労します…。 ご指摘有難うございました。

  • sunasearch
  • ベストアンサー率35% (632/1788)
回答No.1

問題ないと思います。

investorgoo
質問者

お礼

ホッとしました(^_-)-☆

関連するQ&A

  • if文について教えてください

     C++でプログラムを作っています。  b0~b3どれかが1の時という条件指定と、さらにその上でb0~b3どれも1でなく、かつどれも同じ値でないという条件指定はどのように記述すればよいのですか?  ちなみに私は次の様にしたのですが、ビルドすると「error C2181: else 文が if と一致しません。」となってしまいました。 if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{ c[1]=c[1]+1; } else(b[0]!=b[1]!=b[2]!=b[3]!=1){   c[2]=c[2]+1;          }  もう一つこちらでもダメでした。 if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{ c[1]=c[1]+1; } else(b[0]!=b[1]!=b[2]!=b[3]){   c[2]=c[2]+1;          }

  • elseif文の中のif文のところで

    今、c言語の勉強をしていまして、 演習問題のプログラムを作成しています。 elseif文の中のif文のところで エラーが出てしまうのですが・・・。 ご教授して頂けたら幸いです。 #include<stdio.h> int main(void) { int kyori,untin; printf("ようこそ \n"); printf("距離を入力してください->"); scanf("%d", &kyori ); if(kyori < 5) untin = 120; else if(kyori >= 5 && kyori < 21) untin = ((kyori-4)/2*20)+120; else if(kyori >= 21 && kyori < 1000) untin = ((kyori-20)/5*40)+280; //7840円 else if(kyori >= 1000 ) untin = ((kyori-1000)/10*50)+8120 ここでエラー→→→ if(untin <> 0) untin = untin + 50; printf("運賃は%dです。",untin); }

  • Eclipse(3.2.0)で複数にまたがるIF文の書き方

    いつもお世話になっております。 Eclipseを用いてJavaScriptでプログラム作成を行っております。 その中で、IF文の論理式が複数にわたる場合、警告として「Strict line ending error」が表示されてしまいます。 (例) if (a == 1 && b == 1) { } 一行で書くには少々長い条件式を利用する必要が有り、苦慮しております。 この警告を発生させない記述方法、または警告を起こさないEcripseの設定等ございましたら、ご指導ください。 以上、宜しくお願い致します。

  • VB6のIF文について教えてください

    VB6でプログラムについて、みなさんアドバイスをいただけませんでしょうか? 現在、下記のような動作をするプログラムを作っていていますがうまくいきません。 テキストボックスに1~100までの数値を400個入力します。 ボタンを押してこのテキストボックスヘ数値を入力したとき、入力した数値が10未満の 場合はメッセージボックスで「NG」と表示。 それ以外は、メッセージボックスで「OK」と表示プログラムを作っています。 ※これは、テキストボックスに数値を入力して、改行を押した際に、毎回OK・NG判定を  して表示する 今下記のように作っているのですが、苦戦しているのは、数値を入力して改行したときに 毎回メッセージボックスが出ず、エラーが出てしまいます。 下記プログラム文をどのように変更すれば、数値を入力して改行したときに毎回上記のよ うな判定できるようになるかご教示頂けませんでしょうか? みなさん教えてください。よろしくお願いします。 Private Sub Command1_Click() Dim moji As String moji = txtInputData.Text     If moji > 10 Then   Msgbox "NG"   Else  Msgbox "OK" End If End Sub

  • if文で…

    いつもお世話になっております。 ------------------------ typedef struct douken_ { char tiku[11]; char ken[9]; } douken; int main(void){ FILE *fp; douken dou [100]; char buff [18 /* douken */ + 2 /* CrLf(\n\r) */ + 1 /* \0 */]; int i; i = 0; fp = fopen("ex3.fil","rb"); if ( fp == 0 ){ printf("can't open\n"); exit(1); } memset (dou , '\0' , sizeof dou); memset (buff, '\0' , sizeof buff); 問題はここから----------------- while (fgets(buff,sizeof buff,fp) != NULL){ memcpy(&dou[i].tiku ,buff,10); memcpy(&dou[i].ken ,buff+10,10); if (&dou[i].tiku == &dou[i-1].tiku){ printf("%s %s",&dou[i-1].tiku,&dou[i].tiku,&dou[i].ken);} else{ printf("-----------------------"); } ------------------------ 上記のプログラムでは ファイルから読み込んだデータを 構造体に格納して if文で現データと全データを 比較するという処理をしています。(つもり) 構造体に格納するところまでは 出来たのですが if文のところが上手く行きません。 例えば 現データ(tiku)関東地区 前データ(tiku)関東地区 と、同じ場合は 関東地区 東京 と、表示したいのに ----------- と、elseの処理をしてしまいます。 対処方法をご存じでしたら、 ご教授して頂けたら幸いです。

  • if文でスキップしたい場合は?

    従業員番号を入力して正しいフォーマットでなければ エラーを表示するようなプログラムを作ってます。 そのフォーマットとは100-Aのように '-'を挿んで三桁の数字とA~Mまでのローマ字一文字で成り立っています。 ですからZ80-Aや100-Zなどと入力するとエラーが表示されるようにしたいんです (ハイフンは正しい位置で打つことになっています)。 最初と二番目の条件にあてはまる場合は正しいフォーマットなので何もせずに次のループへ行き、 あてはまらない場合は三番目のelse ifでエラーを表示するようにしています。 …でも本当に「何もせずに」では怒られるので申し訳程度にcout;を入れています。 でもこれはどう見ても見栄えの良いプログラムではないですよね? でもif(i==3 && empNum[i] == '-')の"=="を"!="にすると引っかからないんですよね…。 if文で何もしない場合の対処法、または正しい論理式の組み方が分かる方、どうか手直しを助けてください。 お願いします。m(__)m #include <iostream> #include <iomanip> using namespace std; void main() //本当はclassの中なんですけど仮でmain()に入れました { char empNum[6]; cout << " Employee Number: "; cin >> empNum; for(int i=0; i<5; i++) { if(i==3 && empNum[i] == '-') cout; else if(i==4 && (empNum[i] >= 'A' && empNum[i] <= 'M')) cout; else if(empNum[i] < '0' || empNum[i] > '9') cout << "The Employee Number has an Invalid Character: " << empNum[i] << endl; } return; }

  • bashのif文複数条件について

    お世話になります。 まず、下記のスクリプトをご確認ください。 if [ ! -f ${E_FILE} -o -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ] ; then 上記条件文は次のような論理解釈で作成しました。 (${E_FILE}というファイルが存在しない) or  (${E_FILE}というファイルが存在する and ファイル内に'ERROR'という文字列が存在する) これを実行すると: too many argumentsというエラーが返ってきます。 原因をご存知の方がいればご教示いただきたく存じます。 よろしくお願いいたします。

  • mb_send_mail内でif文を使いたい場合

    たぶん関数だとどれも同じ問題かもしれませんが… mb_send_mailでメッセージ部分で、if文を使って表示内容を変えたいです。 <?php mb_send_mail( "info@xxx.com", mb_encode_mimeheader("問い合わせ", "UTF-8"), " 【お名前】$jname\n 【性別】 if ($aaa==1){ echo "女性"; } else { echo "男性"; } \n ", "From:info@xxx.com" ); ?> 上記記述は明らかに変なんですが、やりたいことはこのような感じです。 よろしくお願いしますm(__)m

    • ベストアンサー
    • PHP
  • Excelで=IFで始まるStringがセルに入らない

    条件判定の式をマクロで生成してからセルに入れたいのですが、.Cells~の行でエラー1004が発生し動いてくれません。 エラーの発生する文は以下の通りです。 ---- Dim strTest As String strTest = "=IF(~)" .Cells(2, 2).Value = strTest --- 対処方法等ご存じの方、いらっしゃいましたらご教授ください。 =IFをはずせばちゃんとStringの内容がセルに入ってくれるので、IFは予約語か何かで、そのため止まってしまうのだと思うのですが。。。

  • if [ 条件式 ]とif[[ 条件式 ]]

    シェルスクリプトでのif [ 条件式 ] と if [[ 条件式 ]] の違いについて教えてください。 以下のシェルスクリプトを実行すると、 意図したとおり、111 と出力されます。 =========▼▼(ここから)▼▼========= #!/bin/sh AAA=yes if [[ "$AAA" = [yY]* ]] then echo 111 else echo 222 fi =========▲▲(ここまで)▲▲========= 上記、スクリプト3行目の if [[ "$AAA" = [yY]* ]] の部分を if [ "$AAA" = [yY]* ] というように、角カッコ 1重にすると、 エラーは発生しませんが、 222と表示されます。 if [ 条件式 ] と if [[ 条件式 ]] の違いについて教えていただけないでしょうか。