ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java四則演算クラスに配列と++--とtoString()を追加

2006-10-31 22:56:55 | PG(Java)

自作のJavaの四則演算クラスに、配列とインクリメント・デクリメント演算子(前置・後置)とtoString()を追加してみた。

関数は今まで変数名(識別子)と同じ優先順位に置いていたけれど、よく考えてみるとトップは「識別子そのもの(変数や数値)」と「式を丸括弧でくくったもの」が正しいので、その次の優先順位(後置演算子の位置)に変えた。
で、配列も関数と同じ優先順位に置いた。
で、後置演算子のインクリメント・デクリメントもそこに置いた。

これらは全部後置演算子だけど、インクリメント・デクリメントは単項で、配列は二項演算子のように扱えることを発見(添字が二項目)。
(関数は引数の並びが特殊だから、残念ながらそういう分類には入れられなさそう。強いて言えば「引数の並び」が二項目になるけど)

で、前置演算子のインクリメント・デクリメントも追加したんだけど…。
今まで、+と-は符号と加減算の二通りで使っていたけれども、単項・二項の違いで区別していた。しかし++と--はどちらも単項なので、そういう区別は出来ない。
仕方ないので、後置演算子だけ特別ロジックを組んでしまった…美しくないけど(嘆)


配列の演算はかなり大胆に省略して、【たまたま添字が付いている文字列】として扱ってしまった(苦笑)
なので、a[1]とa[1][1]には全く関連が無い。a[1]とb[1]は絶対別物として扱う。
C言語ならポインター演算に当たるので、a[1]とb[1]が同じ場所を指している可能性もあるんだけど。あ、それはJavaも一緒か(汗)
さらにはC言語だとa[1]と1[a]が同じ意味なんだが…そこまで解釈してられないっす(特に二次元以上の配列になると、考えるのも面倒(爆))。


あと、toString()を実装してみた。
これで綺麗に式が表示できる!…はず。だけど、通り一遍しかテストしてないから、変な出方をするかも?(汗)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« プリプロセッサ命令 | トップ | (?リプレイ)『テーブルト... »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事