「且(か)つ」は、繋がれた条件を全て満たさなくてはいけません。
一方「又(また)は」は、繋がれた条件のうち1つでもいいから満たせばいいです。
優先順位は「且つ」の方が高いので、「且つ」で繋ぐ条件はカッコで囲むべきか考える必要があります。例えば
if(a == 0 && b == 0 || c == 0)
は「a と b が 0 であるか、c が 0 であるかのどちらかならば」となり、
if(a == 0 && (b == 0 || c == 0))
は「a が 0 であり、b または c が 0 であるならば」となります。