コードに次の行があります:-
if (( checker & (1 << val)) ) return false;
ここで、checkerはタイプint
で、valはタイプint
です。同じものをコンパイルしようとすると、次のようになります:-
q11.java:38: incompatible types
found : int
required: boolean
if (( checker & (1 << val)) ) return false;
^
1 error
ただし、コードを次のように変更すると:-
if (( checker & (1 << val)) > 0 ) return false;
その後、ソースをコンパイルすることができます。しかし、コードが最初に機能しなかった理由を理解できません。なぜこれが起こるのかについてのいくつかの指針?