- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:論理式について質問)
論理式についての質問
このQ&Aのポイント
- if(c>='0'&&c<='9')の条件文について疑問があります。
- 例えば55を入力した場合、なぜtrueと判断されて「数字です」と表示されるのでしょうか?
- このif文の論理式は、「0以上且つ9以下」となっているので、55を入力したらfalseになり、else以下の処理をするはずです。疑問点はそこにあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 55を入力したら ・Input.getChar();で入力するのは1文字です。よって、 55 は入力されません。'5'が入力されます ・'9' と 9 は違います。'(シングルクオート)で囲った場合にどんな意味になるか、参考書等を良く読んでください。
その他の回答 (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); }
質問者
お礼
ありがとうございます! さっそくコード試してみます!
お礼
すみません。。。 ありがとうございます!