Acá hay un "problema" y un error
else{
op==op;}
[/quote]
El "problema": Si bien no es incorrecto es innecesario, ya que de no cumplirse el if() que lo precede la variable igualmente no cambiaría el valor, por ende eso "sobra".
El error: el doble signo igual ( == ) indica una condición de igualdad.
Lo que corresponde en este caso es un solo signo ( = ) porque lo que hay que hacer es una asignación de una valor a una variable.
Revisa porque lo mismo ocurre un par de veces con la variable contador ya que
contador == contador;
repites el error de escritura y lo innecesario de asignar a una variable el valor que la misma variable ya contiene (de hecho es muy probable que el compilador ignore esa instrucción).
Saludos