The problem was that the toggle execute the function every time it’s value change (not every click), so the function was get stopped by RETURN, but then the toggle switch execute the function again (because it was set to false in line number 7) and enter the second else condition. after one full day of searching, i found this thread which is full of different solutions to this problem.
forum.unity.com/threads/change-the-value-of-a-toggle-without-triggering-onvaluechanged.275056/