質問: Integer.parseInt(text); calculation(num); } static void calculation(int num){ num *= 15; if(num >= 200){ System.out.println("200以上です"); }else if(100 <= num < 200) { System.out.println("100以上200未満です"); }else if(num<100){ System.out.println("100未満です"); } } }
回答: > > > ``` > else if(100 <= num < 200) { > ``` > > Javaではこのような条件は書けません。次のように二つに分けて書いて下さい。 ``` else if(100 <= num && num < 200) { ``` > > エラーコードがタイプが違うと出るのですが > > > エラーメッセージにはそれ以上の情報が含まれている筈です。 問題のある行など書いてあるわけですが、しっかり読みましたか? 手元のコンパイラでは、次のようなメッセージが表示されました。 ``` Main.java:15: エラー: 二項演算子'<'のオペランド型が不正です }else if(100 <= num < 200) { ^ 最初の型: boolean 2番目の型: int エラー1個 ``` 1. どの行のどの部分でエラーが起きたか分かります。 2. 具体的にどんな型を使用しているか分かります。 3. 検索のヒントになります。 エラーを自ら解釈しようという姿勢は大切ですが、 示された情報の大部分を無視してしまうことは非常に勿体ないです。 なお、numが100以上のとき 100 <= num < 200 は true < 200 と計算され、 演算子 < のオペランド(※)がbooleanとintになってしまうのです。メッセージどおりですね。 ※ 演算対象の値。 コードの貼り方について teratailには、コードを見やすく表示する機能があります。 質問編集画面を開き、コードを選択してからボタンを押して下さい。 !Java また、質問の際はエラーメッセージをそのまま記載して下さい。