+ 2
Syntax error means that there's something in your source code, that isn't allowed in the language syntax. Example in c++ would be any typo or missuse of the language like: "imt i = 0;" or "cout << I forgot about the quotes;" etc. Example in English wolud be: "I an writing am answer" or "Answer write I am".
Logical error, while syntactically correct, does something that was not originally intended. Example in c++: "if(a=2) {/* I meant a==2 */}" or any other unintended logic. Example in English would be "war is peace, freedom is slavery, ignorance is strength"
Dealing with syntax errors is simple. Compiler will post to them for you. Dealing with logical errors is way more involved.