Потому что в checkAge перезаписывается аргумент x, а не глобальная переменная. Это называется "затенение". Переименуйте аргумент. Хотя, по существующей "логике" его вообще передавать не имеет смысла. И еще запомните, что примитивные типы даных передаются по значению, а не по ссылке.
А смысл? "Hello World" на десяти языках?
И на знании только языка программирования далеко не уедешь. Это только фундамент, а на нем целая экосистема и для каждого языка своя.