循环结构+控制语句
(1)Repeat..until循环是先执行一次循环,只要until表达式为false,程序就继续执行,直到不满足表达式。
1 var 2 i: Integer; 3 begin 4 i:= 0; 5 repeat 6 Inc(i); 7 i:= i+1; 8 until (i>10); 9 Edit1.Text := IntToStr(i); 10 end;
(2)while..do循环是先判断while后的布尔表达式在执行。当条件表达式为true,则执行循环体,false则退出循环。
1 var 2 i,j: Integer; 3 begin 4 i:= 0; 5 j:= 0; 6 while i<= 100 do 7 begin 8 j:= j+i; 9 i:= i+1; 10 end; 11 Edit1.Text:= IntToStr(j); 12 end;
(3)for..to..do循环首先为循环变量赋予一个初值和一个终值,循环变量可以是任意合法标识符,循环一次初值+1,直到不满足条件退出循环。for..down..do反之。
1 var 2 i,j,h: Integer; 3 begin 4 j:= 0; 5 for i:= 0 to 100 do 6 begin 7 j:= j+i; 8 end; 9 Edit1.Text:= IntToStr(j);//结果5050 10 h:= 0; 11 j:= 0; 12 for h:= 100 downto 0 do 13 begin 14 j:= j+h; 15 end; 16 Edit2.Text:= IntToStr(j);//结果5050 17 end;
(1)Break:用于强制跳出循环,当一个循环没有达到循环结束条件并要结束循环时可以使用。结束当前循环体。
(2)Continue:用于结束本次循环,即强制结束本次循环,开始下一次循环。当前循环体依然正常运行。
(3)Exit:主要用于退出当前代码块,如果是在程序块中,则跳到上一层代码块中,如果是主程序,则结束程序运行。Exit之前的程序会执行,之后不会。
(4)Halt:用于强制中止程序的执行,并返回到操作系统。
1 begin 2 if MessageDlg('确定退出系统吗?',mtInformation,[mbyes,mbno],0)= mryes then 3 begin 4 Halt; 5 end; 6 end;
(5)RunError:用于终止程序运行并产生一个运行期错误,错误号的最高值为255.
1 begin 2 RunError(200); 3 end;
(6):Abort:终止程序运行,产生一个特殊的 “无记载异常”(EAbort).此异常与其他异常相同,只是不显示错误信息。想想好像并没有什么用处
(6)goto:可以从程序的一个地方跳到另外一个地方,从结构化的角度来讲,不建议使用。不利于调试管理。
1 label AA; 2 var 3 sum,i: Integer; 4 begin 5 sum:= 0; 6 i:= 0; 7 AA://标签处,注意标签使用分号 8 sum:= sum+i; 9 i:= i+1; 10 if i<= 100 then 11 goto AA;//如果i不满足条件,则将标签直接跳转到使用标签的位置 12 edit1.Text:= IntToStr(sum); 13 end;
编程语言无所谓高低级,唯适用罢了。语言结构再天花乱坠,富丽堂皇终不过CPU上的0和1。