• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:論理式について質問)

論理式についての質問

このQ&Aのポイント
  • if(c>='0'&&c<='9')の条件文について疑問があります。
  • 例えば55を入力した場合、なぜtrueと判断されて「数字です」と表示されるのでしょうか?
  • このif文の論理式は、「0以上且つ9以下」となっているので、55を入力したらfalseになり、else以下の処理をするはずです。疑問点はそこにあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> 55を入力したら ・Input.getChar();で入力するのは1文字です。よって、 55 は入力されません。'5'が入力されます ・'9' と 9 は違います。'(シングルクオート)で囲った場合にどんな意味になるか、参考書等を良く読んでください。

wantanton
質問者

お礼

すみません。。。 ありがとうございます!

その他の回答 (1)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> このif文の論理式は、「0以上且つ9以下」なので この部分が間違いです。問題の式は「'0'以上且つ'9'以下」であって、「0以上且つ9以下」ではありません。ANo.1の方も書いているとおり、 c>='0'&&c<='9' と c>=0&&c<=9 は異なります。 変数cに入っているのが55という整数値であるなら、「数字です」が表示されるのは正しい動作です。下のプログラムを実行して、'0'や'9'の値を調べてみてください。 public static void main(String[] args){ int zero='0'; int nine='9'; System.out.println(zero); System.out.println(nine); }

wantanton
質問者

お礼

ありがとうございます! さっそくコード試してみます!

関連するQ&A

専門家に質問してみよう