プロが教えるわが家の防犯対策術!

下記問題の答えが"D"になる意味がわかりません。

Cだと思ったのですが、違うのですか?
なぜ、bがfalseに変換されるのでしょうか?

「下記問題の答えが"D"になる意味がわかり」の質問画像

A 回答 (3件)

4行目で b に false wp「代入」しているのは


わかりますか?

4行目の b = false は比較じゃなくて代入です。

== を = と書き間違えるのは、あなたがこれから
何百回も繰り返すであろうへまの一つです。

万人が繰り返すへまなので、
多くの開発環境では、このへまを自動検出して
知らせてくれます(^^;
    • good
    • 0

意味など考えずとも, きちんと処理を追っていけばそうなるのだが.... 具体的にはどこで何に困っている?

    • good
    • 0

そりゃDですよ。


boolean型なので、falseやtrueの文字列が格納される訳じゃ無く、真偽の値が代入されて・・・。
まあ、ここはどうでも良くて

if(b=false)は比較じゃ無くて、bに偽の値を代入してます。
「bにfalseを代入」が実行され、if(b)になる。

bにfalseを代入されたので、if(false)と同じように分岐する。

以下の様に書いても同じなので、
boolean b = true;
b = false;
if(b) {System.out.println(b);}
System.out.println(b);

だからfalseと印字されるわけ。

比較は、if (b==false)だね・・・。
    • good
    • 1
この回答へのお礼

ご丁寧にありがとうございます!
そこでfalseが代入されていたんですね
if(b==false)と勘違いしてました>_<

お礼日時:2023/08/29 23:46

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A