1つだけ過去を変えられるとしたら?

質問1:初心者にわかりやすいように説明してください。
言語仕様書みてもちんぷんかんぷんでした。。

質問2:評価とは、主に2つの意味があり、1つ目は「演算子がオペランドを演算する事」、2つ目は、式を構成する変数やリテラルについて「その値がいくつであるかを得ること」でしょうか?


例えば、論理演算について、int a=1,b=0,c=0のとき、a==1 && b==3 || a==1 && b==0の論理式があったとします。このとき、評価とは
a==1がtrueがfalseかを評価する、→trueの値を得る。
こういった意味でしょうか?


質問3:「リテラルを評価する」というのはどういうことでしょうか?

A 回答 (2件)

回答3.


キーワード「リテラル Java」でGoogle検索して最上位にヒットするのがこちら。
http://sjc-p.obx21.com/word/jr/literal.html
「では、なぜあえてソースコード表現と説明されているのでしょうか」以降の説明を理解してください。

> 変数やリテラルについて「その値がいくつであるかを得ること」

と質問者自身がおっしゃっているとおり,

・ソースコード中に 30 という単語(token)が登場したなら,それは10進数表記を用いたint型の整数値 30 だと解釈する
・ソースコード中に 'A' という単語(token)が登場したなら,それは英字表記を用いたchar型の文字値 A だと解釈する

それが「リテラルを評価する」ということです。

----------------
回答2.

> 評価とは a==1がtrueがfalseかを評価する、→trueの値を得る。
> こういった意味でしょうか?

はい,そういう意味です。

----------------
回答1.

Javaソースコード中に登場する
「a==1 && b==3 || a==1 && b==0」という表記を,
適当な28文字の単なる羅列と捉えるのではなく,
Javaはそれをある意味が表現されたものとして捉えているわけですよね。

・ソースコード中に「a==1 && b==3 || a==1 && b==0」という式が登場したなら,それは …… だと解釈する

それが「この式を評価する」ということです。

この回答への補足

丁重なご回答ありがとうございます^^
かなりわかりやすかったです!!!
いつもありがとうございます!

補足日時:2011/06/29 16:14
    • good
    • 1

言語は何でしょうか?


たぶん、C,C++,Javaあたりではないでしょうか。

質問1,2,3が何かよくわかりませんが、
質問2の1つ目は
if(a*b) みたいな、算術演算子やビット演算子のことを言っているのではないでしょうか。
(演算結果が、0以外はすべてtrue)
また、質問2の2つ目は
if(a==1)のような、質問者さんが書かれているような、比較演算子のことを言っているのかと思います。

また、if(a==1)はif(1==a)とも書き直すことができます。
つまり、このような比較(評価)は、aも評価していますし、1(リテラル)も同時に評価していることになります。

正直、説明の話の流れがわからないと、何とも言えませんので、もう1度これを頭に入れて読み直してみることをお勧めします。(つまり、間違っている可能性もあると言うことです)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!