Почему в переработанном внутреннем цикле data[i][j] выводится до проверки на равенство 5?
data[i][j]
5
Чтобы превратить каждый элемент данных в 5.
Чтобы вызвавшее выход значение 5 попало в вывод до завершения выполнения.
Чтобы значения от 1 до 4 не выводились.
1
4
Потому что синтаксис Go требует, чтобы перед каждым goto находился fmt.Println.
goto
fmt.Println