if(!$A && !$B){・・・};の「!」ってどういういみですか?ちなみにCGIです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答9件)

id:theramic No.1

回答回数17ベストアンサー獲得回数0

ポイント13pt

論理演算子

!$aであれば、「$aが真でなければTRUEを返す」つまり$aがTRUEでない(FALSE)ってことです。

id:desu

なるほど$Aと$Bが両方とも否定であればTRUEを返すということですね。

でも$Aも$Bとも変数の場合、どういう場合が真や偽となるんですか?

2003/06/18 11:47:53
id:rabienrose No.2

回答回数29ベストアンサー獲得回数0

ポイント13pt

「!」は論理演算子の事で、「not」を表します。日本語でいうところの「〜ではない」に相当します。なので条件文で使われると通常の判定の逆の判定をすることになります。

id:desu

なるほど$Aと$Bが両方とも否定であればTRUEを返すということですね。

でも$Aも$Bとも変数の場合、どういう場合が真や偽となるんですか?

2003/06/18 11:48:12
id:u1p No.3

回答回数455ベストアンサー獲得回数6

ポイント13pt

条件の否定ですね。

ところで、CGIです、とありますが、Perlです、ですよね?

id:desu

Perlとも言うんですかねぇ?

たぶんそうです。

その辺よくわかりません、すいません。

2003/06/18 11:49:49
id:everfield No.4

回答回数3ベストアンサー獲得回数0

ポイント13pt

「!」は論理演算子の否定を表す記号で、

$A == 真 のときは !$A == 偽

$A == 偽 のときは !$A == 真

になります。

ですので、

!$A && !$B

は、$Aも$Bも共に成立しない場合に真になります。

もし$Aが数値なら、

($A == 0) && ($B == 0)

と同じ意味です。

id:desu

大変わかりやすい解説ありがとうございます。

数値の場合は eq 0 が真で ne 0 が偽だったんですね。

今回の場合は$A、$B両方の数値に0が入っていればTRUEを返すということですね。

2003/06/18 11:58:45
id:hatman No.5

回答回数2ベストアンサー獲得回数0

ポイント13pt

http://allabout.co.jp/career/cgiperl/closeup/CU20030508A/

「CGI・Perl」サイト閉鎖のお知らせ - All About

論理否定演算子です。

id:pahoo No.6

回答回数5960ベストアンサー獲得回数633

ポイント13pt

http://nekopps.hp.infoseek.co.jp/perl/tips6.html

Perl言語においての"真偽"とは

Perlにおける真偽についてはこのサイトを参照してください。変数$A, $Bに入る値を評価して真偽が決まります。

id:theramic No.7

回答回数17ベストアンサー獲得回数0

ポイント14pt

Perlとはプログラミング言語の一種です。

PerlやC言語、PHPで書かれたスクリプトのことをCGIと呼びます。

上に上げたサイトは1例ですが、Perlについての入門サイトはいいものがたくさんあります。CGIを扱いたいのなら全体にざっとでも目を通してみてはどうでしょうか?

id:ny152 No.8

回答回数64ベストアンサー獲得回数0

ポイント14pt

perlの真偽は単純なんですが、1つだけ気をつけなければいけません。

 変数の中が文字列か数字かです

 数字の場合

   0 偽

   0以外 真

 文字列の場合

   ”” 偽 (文字がない状態)

   ”0” 真 (0という文字)

   ”ABC” 真

 文字列とは””で囲まれたものをさします

   ”0”は真なんです

id:desu

なるほど・・・

2003/06/18 13:19:42
id:aki73ix No.9

回答回数5224ベストアンサー獲得回数27

ポイント14pt

変数$Aが

0, ’0’ ””(NULL)

の時 !$Aは真になります

$SC0=”ABC”;

$SC1=””;

$SC2=1;

$SC3=0;

$SC4=’1’;

$SC5=”0”;

print qq(Content-type: text/html¥n¥n<HTML><BODY>);

if(!$SC0){

print qq(0);

}

if(!$SC1){

print qq(1);

}

if(!$SC2){

print qq(2);

}

if(!$SC3){

print qq(3);

}

if(!$SC4){

print qq(4);

}

if(!$SC5){

print qq(5);

}

print qq(</BODY></HTML>);

exit;

のようなCGIを書いてみれば分かると思いますが

135がかえることからも分かると思います

id:desu

””も「!$A」と同じ意味だったとは・・・

0と”0”はわからなくもなかったのですが。

””が偽となるのは文字列の時だけだと思ってました。

2003/06/18 13:31:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません