Разница огромная.
Первый вариант с вложенными циклами:
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
System.out.println (j);
Второй вариант, когда тот же самый цикл написан после другого, а вовсе не внутри:
for (int i = 0; i < 5; i++);
// Точка с запятой говорит, что теперь это отдельный цикл
for (int j = 0; j < 5; j++)
System.out.println (j);
Получается, в первом случае вложенный цикл выполнится целых 5 раз. Во втором случае сначала один раз выполнится первый цикл, а потом уже один раз выполнится второй.
В коде в данном случае разница всего в один символ - одна точка с запятой обозначила конец тела первого цикла. Но теперь получилась совершенно другая концепция.
Это обычное дело в программировании, поэтому отладка ошибок часто занимает не меньше времени, чем написание самой программы. В этом деле очень помогает отладчик - он позволяет видеть как программа работает по шагам, строчка за строчкой, и чему равна каждая переменная на каждом шаге. По-английски отладка будет debug, поэтому обычно кнопка отладки зовётся debug. Просто нажмите на неё и дальше щелкайте по кнопке "следующий шаг". А для того, чтобы смотреть, какое значение у переменных на каждом шаге обычно есть кнопка "add watch", то есть добавить наблюдение и нужно указать имя переменной.