Ada:循环导致以后的代码无法访问

Ada:循环导致以后的代码无法访问,ada,Ada,我是艾达的新手。我正在尝试让以下代码正常工作: 开始 Ada.文本输入线(“学生ID分数”); Ada.Text\u IO.Put\u行(“========================================”; 阅读答案(pAnswers,1); 环 声明 计数器:整数:=0; 学生输入:字符串:=获取行(输入); 学生成绩:整数; 开始 numOfTests:=numOfTests+1; 当前_student.ID:=GetID(studentInput); Text_IO.Pu

我是艾达的新手。我正在尝试让以下代码正常工作:

开始
Ada.文本输入线(“学生ID分数”);
Ada.Text\u IO.Put\u行(“========================================”;
阅读答案(pAnswers,1);
环
声明
计数器:整数:=0;
学生输入:字符串:=获取行(输入);
学生成绩:整数;
开始
numOfTests:=numOfTests+1;
当前_student.ID:=GetID(studentInput);
Text_IO.Put(Ada.Strings.Unbounded.To_String(current_student.ID));
阅读答案(学生输入(6..studentInput'Last),0);
学生分数:=分数测试(当前学生答案、当前答案、问题数量);
Ada.整型文字输入(学生分数);
新线(1),;
结束;
端环;
Ada.Text\u IO.Put\u行(“========================================”;
Ada.Text_IO.Put(“Tests Graded=”);
整数文本输入输出(numOfTests);
结束;

不幸的是,GNAT告诉我循环后的所有代码都是不可访问的。如何让此程序执行循环及其后的代码?

您忘记了退出条件:

loop
  exit when condition;
end loop;

循环何时结束没有任何条件,因此它会独立运行,从而永远不会到达之后的代码。

您处于无限循环中,这就是为什么以后的代码无法访问的原因。因此,您需要一个中断条件来告诉循环何时停止。@Conner;如果有帮助,请在答案上做标记,如果没有帮助,请发表评论。