• ベストアンサー

算術演算子

以下のプログラミングでなぜブラウザ上には「2*256=512」と表示されるのですか?1列目と2列目に同じ$suuzi1がある意味もわからないのですが解説お願いします。 $suuzi1=1; $suuzi1=2; $suuzi2=256; $suuzi++; $suuzi3=$suuzi1*$suuzi2; print"$suuzi1*$suuzi2=$suuzi3<br>\n"; ブラウザ上 2*256=512

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

特に意味はないのでは? 最初 $suuzi1 に 1 を代入して、 すぐ下で $suuzi1 に 2 を代入しているので、 $suuzi1=1; は不必要です。 ちなみに、 $suuzi++; も使用してないので不必要ですね。

DINO-PIE
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

""は変数の値を展開して出力するからその結果で問題ないです。 展開させたくないのなら''でくくります。 1、2列は同じ変数を上書きしているだけなので2列目だけでいいです。

DINO-PIE
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • bob_n
  • ベストアンサー率35% (610/1732)
回答No.1

1列目で1が代入されて、 2列目で2が代入されます。 なので、1列目と2列目の間に、print"$suuzi1<br>\n"; をいれると、1と表示されると思います。

DINO-PIE
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 算術子

    初心者でperl勉強中です。なぜ下のプログラムでブラウザ上に「320320」と表示されるのですか?2つ目のprint文が320になる仕組みがわからないのでお願いします。 $aa=16; $bb=32; $cc=2; $aa=$bb*10; print"$aa"; ($cc=$aa)*10; print"$cc<br>\n"; ブラウザ上 320320

    • ベストアンサー
    • Perl
  • cgiで文字列操作

    文字列$FILENAME1から★★より右側だけ取り出したいのですが、★★がない場合もあるので、 以下のようにしてみました。 -------------------- $FILENAME1 = "*****★★****"; print "文字列は「$FILENAME1」<BR><BR>\n"; $DIR = "★★"; $MOJISUU = length $DIR; print "探す文字列は「$DIR」<BR><BR>\n"; $position = index $FILENAME1,$DIR; print "$DIRの文字位置は「$position」<BR><BR>\n"; if ($position > 0){ $FILENAME = substr($FILENAME1,$position+$MOJISUU); print "$FILENAME<BR>\n"; } else { print "$FILENAME<BR>\n"; } -------------------- ★★が入ってる場合はうまくいくのですが、入っていない場合うまくいきません。 (結果が表示されない) どこを直したらいいのでしょうか?

  • perl 条件演算子 範囲演算子についてです

    演算子 条件演算子 条件演算子 ?: は条件式の値により、2者のうちのどちらかを選択します。 $a=($x<10)?10:20; 変数$aの値が$x<10という条件において、真であれば:左側の10を選び、偽であれば:右側の20を選ぶ。 $a=10; 変数$aに10を代入する。 $a==5?print "5です。\n":print "5ではありません。\n"; 条件式でaが5であれば:左側の print "5です。\n"を表示します。 条件式でaが5でなければ:右側の print "5ではありません。\n"を表示します。 $a==10?print "10です。\n":print "10ではありません。\n"; 条件式でaが10であれば:左側の "10です。\n" を表示します。 条件式でaが10でなければ:右側の "10ではありません。\n" を表示します。 範囲演算子 範囲演算子 .. は、左側の値から右側の値まで、1つずつ増やした値の集まりです。 値には、半角英数字の数値または文字列が指定できる。 print 3..5; 3 4 5 と表示する。 一応、訳を下に書いたのですが合っていますでしょうか。

  • 比較演算子===と!==について

    PHP初心者です。 まず、===と!==が型が同じかどうかを比較する演算子だという事は調べて分かりました。 問題は以下のソースコードに関してです。 <?php class foo { public $a = 3; } class hoge { public $a = 3; } //真偽を文字列に変換する関数 function trueOrFalse($comp) { return $comp? 'true':'false'; } //4つの比較演算子を用いた比較の結果の表示 function compareObject($var1, $var2) { print('$var1 == $var2 --'.trueOrFalse($var1 == $var2)."\n"); print('$var1 != $var2 --'.trueOrFalse($var1 != $var2)."\n"); print('$var1 === $var2 --'.trueOrFalse($var1 === $var2)."\n"); print('$var1 !== $var2 --'.trueOrFalse($var1 !== $var2)."\n"); } //オブジェクトの生成 $f0 = new foo(); $f1 = new foo(); //$f0を代入、$f2は、$f0と同じオブジェクトを指す $f2 = $f0; $h0 = new hoge(); //結果の表示 print("同じクラス、プロパティが同じ\n"); compareObject($f0, $f1); print("同じオブジェクトを参照\n"); compareObject($f0, $f2); print("異なるクラス、プロパティは同じ\n"); compareObject($f0, $h0); ?> この結果分からないのは$f0と$f1の比較で===はfalseに!==はtrueになる事です。 型が違うとは一体どういう事なのでしょうか。 また、付け足す形になりますが、$f0と$h0の比較についても分かりません。 値は両方3です。 なのに==はfalseに!=はtrueになります。 これはどうしてでしょうか。 アドバイスどうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • if文で、上手く表示されない

    お世話になります。 PerlのBBSを改造中です。 きちんと勉強してはいませんが、なんとなく弄ることは出来るレベルです。 今、ifで、表示の変更をしているのですが、上手く行かなくて困っています。 お分かりになる方、 何らかの原因に心当たりのある方、 どうぞよろしくお願いします。 ★━━━━━━━━━━━━━━━━━━━━★ データを入れているdatファイル内、 $astrologyというのに、「*Leo*」というのが格納されています。 …で、 if(!$astrology){ print "入ってない\n";} else{ print "入ってる\n";} …と入れると、「*Leo*」というデータが入っているわけなので、 「入ってる」と、表示されます。 ですが、 if($astrology == "*Aries*") {print "おひつじ座 <br />$astrology \n";} elsif($astrology == "*Leo*") {print "しし座 <br />$astrology\n";} else{print "その他<br />$astrology\n";} ・・・と、書いてみると 「 おひつじ座 *Leo* 」 と表示されます。 「*Leo*」と表示されているので、呼び込めていない訳ではないと思うのですが…。 ★━━━━━━━━━━━━━━━━━━━━★ 何が原因かわからないので、ちょっとしたアドバイスでも構いません。 ご返答よろしくお願いします。

    • ベストアンサー
    • Perl
  • PHP 改行

    phpをはじめたばかりの初心者です。 <?php print('1行目の分'); print("\n"); print('2行目の分'); ?> と打ち、そのファイルをアップロードし、ブラウザで確認しても 改行がされていませんでした。 調べてみると、htmlで表示させるには<br />が必要みたいな事があったので、 print("\n"); を print("\n<br />"); と、<br />を適当に入れてみたら改行されましたが 何か釈然としません。 であればそもそもPHPの改行を表すprint("\n");は何のためにあるのでしょうか? print("\n");だけでは改行表示がされないのは、どういう風に考えればいいのでしょうか? その考え方を教えて下さい。 print("\n");は単体で使う事はあるのでしょうか?

    • ベストアンサー
    • PHP
  • Perl文字列置き換えについて

    今日は、PerlとCGIについて、お聞きしたいことがあります。 ~s///;で、文字列の置き換えが出来ますよね? 実行しても、変な数字しか出てこないのです。^^; つまずいてしまいました。 以下、コードです。(プロバイダはぷららです) 実行URL http://www9.plala.or.jp/mura001/form2.html =============================================== #!/usr/local/bin/perl -w require "jcode.pl"; require "cgi-lib.pl"; $host=$ENV{'REMOTE_HOST'}; #IP取得 $addr=$ENV{'REMOTE_ADDR'}; $bo=$ENV{'HTTP_UER_AGENT'}; $http=$ENV{'HTTP_HOST'}; #アクセス元URL $access=$ENV{'HTTP_REFERER'}; &ReadParse; #秒、分、時、日、年、月、曜日 ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime; $mon++; $year += 1900; #曜日を日本語化 @week=('日','月','火','水','木','金','土'); $wday=$week[$wday]; #<input type>のnameを読み込む。 $name = $in{'han'}; $text = $in{'text'}; #日本語レコード &jcode'convert(*name,'euc'); &jcode'convert(*text,'euc'); #文字列置換 $name = ~s/</555/; #改行二つ書かないといけないみたい。 print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<title>テスト</title>\n"; print "</head>\n"; print "<body>\n"; print "テストです。<br>\n\n"; if($in{'han'} eq ''){ print "何も入力されていません。<br><br>\n"; exit(); } print "貴方が入力した名前は $name ですね。<br><br>\n\n"; print "$text<br><br>\n\n"; print $ENV{'PATH'},"<br><br>\n\n"; &file2(); print "書き込みリスト<br><br>\n\n"; &file(); print "</body>\n"; print "</html>\n"; sub file{ open(IN,"test.txt"); while(<IN>){ print; } close(IN); } sub file2{ open(IN,">>test.txt"); print IN "<hr>訪問者:$name $year年$mon月$mday日($wday)$hour:$min:$sec<br><br>\n\n"; print IN $text,"<br><br>"; print IN "IPアドレス:$addr<br><br>\n\n"; print IN "アクセス元:<a href=\"$access\">$access</a><br><br><hr>\n\n"; close(IN); } ========================== $name = ~s/</555/; が、 4294967295 にどうしてもなります。^^; (置き換え後の文字列を他のに変更しても必ず、 4294967295 になります!) 分かる方、いらっしゃいますか? あと、日本語の変換が出来ません。(汗) それと、ぷららのサーバがかなり重たいのですが、どうすれば宜しいでしょうか? ご迷惑をおかけいたしますが、どうか、宜しくお願いいたします。

  • PHPで"\n"を使って、改行できますか?

    いつもお世話になっております。 PHPの解説書などを読みますと、例えば print('最初の行'); print("\n"); print('最後の行'); のように書くと、改行されますと書いてありますが、一般的には<br>などを入れなければ改行できないと思うのです。 そういった解説書も、当然html内にソースを書いて、Webサーバーにアップし、ブラウザで読み込むという環境下で解説されています。 上記の環境で "\n" を使って改行できる状況というのはどういう場合なのでしょうか? わたしはいままで一度も改行されたことがないのですが。

    • ベストアンサー
    • PHP
  • 初歩的なCGIですが

    #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD><TITLE>perlテスト</TITLE></HEAD>\n"; print "<BODY>\n"; print "本文1<BR>\n"; print "本文2<BR>\n"; print "</BODY>\n"; print "</HTML>\n"; 上記プログラムをFTPサーバにアップロードして、perlプログラム内では正しい結果が出たのですが、ブラウザ上で確認したら、htmlのタグが除かれた状態のソースが出てきました。  正しい結果をブラウザ上で表示させるにはどうすればいいのでしょうか?教えてください。

    • ベストアンサー
    • CGI
  • splitについて教えてください。

    @name=("ひろと","けいた","はやと","りゅうすけ","とらのすけ"); @str=@name; print "@str\n"; @str=join(";",@str); print "<br>@str\n"; @str=split(/;/,@str); print "<br>@str\n"; 上記のような配列を作成したプログラムを実験で作ってみました。(一部抜粋です。htmlで表記されるようにしています。) ブラウザで見てみると、以下のようになりました。 ひろと けいた はやと りゅうすけ とらのすけ ひろと;けいた;はやと;りゅうすけ;とらのすけ 1 その中の3行目の「1」とだけ表示された理由がわかりません。 splitにより、joinで作成された一つの文字列を、 再び「;」で区切って要素数が5つの配列に戻したかったのですが、 なぜか1と返されてしまいました。 splitの使い方を教えていただけないでしょうか。

    • ベストアンサー
    • CGI
PCにPrinterを追加できなくなった
このQ&Aのポイント
  • 印刷最中にPrinterが止まり、PCから削除して再追加しようとしたができない
  • 接続方法は無線LANでWi-Fiルーターはsoft bank、電話回線はひかり
  • ブラザー製品のインクジェット/レーザー プリンターでパソコン印刷ができないトラブル
回答を見る