アカウント名:
パスワード:
単項演算子のルールは、前置修飾が「演算後の値で評価」、後置修飾が「演算前の値で評価」です。if()とかwhile()の中という覚え方をしていると、例えば
代入:b = a++;
関数の引数:val = func(a++)
三項演算子:val = ( a++ > 10 ? b++: ++c );
というケースなどで見落とす可能性があります。また、マクロ内での単項演算子とか複数出てきた場合の評価順序とかややこしい問題もありますので、お仕事では単項演算子を評価式内で使うことはコーディングルールで禁止しているケースもあります。老婆心ながらご注意を。
j-- ⇒ jを1減らした後、減らす前の値を返す--j ⇒ jを1減らした後、減らした後の値を返すってことだからね。j--が0になったときは、jは-1だなぁ。
> while (条件式) ではカッコ内を処理してから…と思い込んでしまった。って、条件式は、「j--」であって、「j」ではないのだから、「カッコ内を処理してから」で間違っていない。
自分も単項演算子を評価式で書かないようにしてますね。
で、普段使わないもんだから後評価と先評価がどっちか自信がなくて、ますます使わなくなる、という……
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
範囲が狭いかも (スコア:4, 参考になる)
単項演算子のルールは、前置修飾が「演算後の値で評価」、後置修飾が「演算前の値で評価」です。if()とかwhile()の中という覚え方をしていると、例えば
というケースなどで見落とす可能性があります。また、マクロ内での単項演算子とか複数出てきた場合の評価順序とかややこしい問題もありますので、お仕事では単項演算子を評価式内で使うことはコーディングルールで禁止しているケースもあります。老婆心ながらご注意を。
ほえほえ
Re:範囲が狭いかも (スコア:2)
j-- ⇒ jを1減らした後、減らす前の値を返す
--j ⇒ jを1減らした後、減らした後の値を返す
ってことだからね。j--が0になったときは、jは-1だなぁ。
> while (条件式) ではカッコ内を処理してから…と思い込んでしまった。
って、条件式は、「j--」であって、「j」ではないのだから、「カッコ内を処理してから」で間違っていない。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Re:範囲が狭いかも (スコア:1)
自分も単項演算子を評価式で書かないようにしてますね。
で、普段使わないもんだから後評価と先評価がどっちか自信がなくて、
ますます使わなくなる、という……