車のボディーのカラーが正式なカラーバリエーション(白、黒、赤)に属さない色を渡された場合は、〇〇(色名)は正式なカラーバリエーションに属しません。BLACK/WHITE/REDから選択してください。と表示させたいです。
上記を実現させるために以下のようにコーディングしました。
Java
1//paintメソッド(引数あり、戻り値なし(ここが呼び出し元なので)、色をぬる、正式なカラーバリエーションの範囲内かをチェックするメソッドを呼び出す) 2 public void paint( String cl ){ 3 if( colorCheck(cl) = true ) { 4 this.carColor = cl ; 5 }else if( colorCheck(cl) = false ){ 6 System.out.println( cl + "は正式なカラーバリエーションに属しません。BLACK/WHITE/REDから選択してください。" ) ; 7 } 8 } 9 10 //colorCheckメソッド(外部からいじれない、引数あり、戻り値boolean、カラーはWHITE/BLACK/RED) 11 private boolean colorCheck( String cl ) { 12 boolean colorResult = false ; 13 14 if(cl.equals("WHITE")||cl.equals("BLACK")||cl.equals("RED")){ 15 colorResult = true ; 16 } 17 18 return colorResult ; 19 }
これをコンパイルすると以下のようなエラーが出てきました。
【エラー内容】---------------------------
.\Car_function2.java:59: error: unexpected type
if( colorCheck(cl) = true ) {
^
required: variable
found: value
.\Car_function2.java:61: error: unexpected type
}else if( colorCheck(cl) = false ){
^
required: variable
found: value
2 errors
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
おそらく、if(colorCheck(cl) = true){...と書くのではなく、if(colorCheck(cl) ){...と書けということだと思うのですが、この部分が分かりません。
colorCheckメソッドでtrueだと判断されればtrueが戻り値としてpaintメソッドのcolorCheck(cl)に代入されるはずと考えました。
すなわち、もしtrueだった場合、if(colorCheck(cl) ){...と書いていれば戻り値のtrueを受け取って if( true ){... と変換されるのではないかなと思いました。
しかしそうすると、何がtrueなのかわからないし、falseだった場合の場合分けもできなくなると考えました。
どのようにコードを書けば場合分けがちゃんとできるでしょうか。きちんと理解もしたいので、コードの理由も一緒に教えていただきたいです。よろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/10 05:41