スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

「++」インクリメント と 「--」デクリメント ?前に付けるか後ろに付けるか? 【PHP】

プログラミングで、数値系の変数に「1」を足すときに、
  『 $int = $int + 1; 』
としてやれば可能ですが、正直、面倒ですよね。


なので、そういうときは、
  ?『 $int++; 』
  ?『 ++$int; 』
?や?のように記述すれば、その変数に「1」を加算してくれますよね。

人によって?を使う人や?を使う人がいるようですが、
この二つの記述方法に違いはあるのでしょうか?


結論から言えば、違います。


 『何を言うんだ。どちらも「1」を足すだけじゃないか!』

って言われるかもしれませんが、一応、機能的にハッキリとした違いがあるのです。



早速、検証してみましょう。



上の例の2行目で、変数$intに整数型の「100」を代入しています。

3行目(?)では、$intをそのまま出力し、『? 100』と表示します。
4行目(?)では、$intをインクリメント(1を足す)して表示します。『? 101』と出ます。
5行目(?)でも、$intをインクリメントして、「102」になっている・・・ と思いきや、
なんと、『? 101』と表示しています。

  『あれっ、1を足してるのに、何故「102」と表示されないの?』

となります。 とりあえず次の行を見ましょう。
6行目(?)では、$intをそのまま表示しています。すると、なんと『? 102』と出ました。



結局、こういうことです。
「++$int」は、すぐに1を足して、足した後に表示します。
「$int++」は、表示してから、1を足します。

ちなみに、この性質はデクリメント「--」の場合でも同じです。



これを知らないままプログラムを組むと、予想外の挙動を示すことがあります。
例えば、下のように・・・



【1】の方では、「++$cnt」としています。
【2】は、「$cnt++」となっています。  違いはそこだけです。
しかし、結果は微妙に違います。
【1】では、1?10までの整数が並んでいるのに対し、
【2】では、0?9までの整数が並んでいます。

このように、外見は似ていても、プログラム内では大きな影響を及ぼしかねません。





これらの「インクリメント」、「デクリメント」を利用する際には、
どちらの記述形式の方が正しいのか、はたまた、どちらでも良いのかを
しっかりと判断することが大切だと思います。(←偉そうに・・・^^;)
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

テーマ : PHP /  ジャンル : コンピュータ

コメントの投稿

非公開コメント

カテゴリー
ようこそ!
Author: Torasuke
Profile: 地元大学の情報系学部に息をひそめる二回生。
   SA SW


ブログ内検索
最近のコメント
オススメ
京都の大学生のラボブログ
Python,Java,Objective-C,GAE,Macなど
Python独習中の大学生のブログ


ltzz.info
ここの管理者さんには謁見済み!(えっ

 Use OpenOffice.org
無補償でも良いなら、MSOfficeよりOpenOfficeで十分です。

Mozilla Firefox ブラウザ無料ダウンロード
当サイトは、Firefoxというブラウザで動作確認しています。私は以前、IE派でしたが、一度乗り換えて慣れてしまうと、Firefoxのほうが便利だということを実感しました。

是非よろしくお願いします。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。