How can I make this work when the booleans are equal?

When I run this code

		public void checkForMatches() {
		if(a && b 
		   || a && c 
		   || b && c 
		   || a && b && c){
			matchFound();

			}
		}
	void matchFound(){
			Score += 10;
			}

it happens the frame after the booleans aren’t true anymore but when used in update it’s very inaccurate and sometimes adds 20 or 30 to the score, fixedUpdate seems to do the same thing.

Maybe

if(a && b || a && c || b && c || a && b && c)

should be

if((a && b) || (a && c) || (b && c) || (a && b && c))

This will make it so that the AND statements will be calculated first, then the OR statements will correctly compare the AND statements.