Выход из цикла

 for i:= 1 to n do begin
  a[i].name:='';
    repeat
      readln(c);
      a[i].name:=a[i].name+c
    until c=' ';
    
    repeat
      readln(c);
      a[i].name:=a[i].name+c
    until c=' ';
     
    a[i].sum:=0;
    
    for j:= 1 to 3 do begin
      read(k);
      a[i].sum:=a[i].sum+k;
    end;
    readln;
    end;

Программа должна считывать Имя, Фамилию и 3 однозначных числа за 1 цикл. Всего n должно быть циклов, а потом дальше программа завершает работу, Но у меня вместо этого после n-ого цикла программа продолжает считывать информацию с клавиатуры. Как выйти из цикла?

Было бы неплохо увидеть всю программу, а то так не очень понятно.

если я правильно понял мысль - так посимвольно считывается имя с фамилией. но работать оно так не будет) Не говоря уже о том, что имя с фамилией в одну и ту же переменную пишутся.

Можете, пожалуйста, подробнее описать ход программы? И желательно указать где конкретно какой цикл за что отвечает? И @Molkree правильно сказал, неплохо было бы увидеть весь код программы, включая описание типа переменной “а”)

Я вот ради интереса повторил наугад, не зная, что у вас там ещё в программе, но у меня всё прекрасно работает. Вот код:

program test;
	type
		rec = record
			name: string;
			sum: integer;
		end;
		
	const
		n: byte = 3;
	
	var
		a: array [1 .. 3] of rec;
		i, j, k: integer;
		c: char;

begin //1
for i:= 1 to n do begin //2
  a[i].name:='';
    repeat
      readln(c);
      a[i].name:=a[i].name+c
    until c=' ';
    
    repeat
      readln(c);
      a[i].name:=a[i].name+c
    until c=' ';
     
    a[i].sum:=0;
    
    for j:= 1 to 3 do begin //3
      read(k);
      a[i].sum:=a[i].sum+k;
    end; //3
    {DEBUG}WriteLn (a[i].name);
    {DEBUG}WriteLn (a[i].sum);
    readln;
    end; //2
end. //1