Delphi語法基礎 迴圈語句

2021-04-18 11:50:42 字數 3060 閱讀 1019

一、for語句

格式    for 控制變數:=初值 to 終值 do 語句;    for 控制變數:=初值 downto 終值 do 語句;

for語句執行過程:

1、先將初值賦給左邊的變數(稱為迴圈控制變數);   2、判斷迴圈控制變數的值是否已「超過」終值,如已超過,則跳到步驟5;   3、果末超過終值,則執行do後面的那個語句(稱為迴圈體);   4、控制變數返回步驟2;   5、迴圈結束,執行for迴圈後語句。

說明:   迴圈控制變數必須是順序型別。例如,可以是整型、字元型等,但不能為實型。   迴圈控制變數的值選用to則為遞增;選用downto則遞減。   迴圈控制變數的值「超過」終值,對遞增型迴圈,「超過」指大於,對遞減型迴圈,「超過」指小於。   迴圈控制變數的初值和終值一經確定,迴圈次數就確定了。但是在迴圈體內對迴圈變數的值進行修改,常常會使得迴圈提前結束或進入死環。建議不要在迴圈體中隨意修改控制變數的值。   for語句中的初值、終值都可以是順序型別的常量、變數、表示式。

例5_1、求s=1+2+3+…+ 100   var n,i : integer;             {i為迴圈變數}     s : longint;                {s為累加器}   begin    write('input n='); readln(n); s:=0;    for i:=2 to n do s:=s+i;     {從2到n累加到s中}

writeln('1+2+3+…+ 100=',s);

end.

例5_2、輸出斐波那契數列的前20項。

規律: f1=0            (n=1)

f2=1            (n=2)

fn=fn-1+fn-2      (n>=3)    即 0,1,1,2,3,5,8,13,21,……

分析:由公式fn=fn-1+fn-2,採用遞推演算法求解。

方法一

var a,b,i: longint;

begin

a:=0; b:=1; write(a, ', ',b);

for i=2 to 10 do

begin a:=a+b; b:=a+b; write( ', 'a, ', ',b); end;

end.

方法二

var a,b,c,i:integer;

begin

a:=0; b:=1; write(a, ', ',b);

for i=3 to 20 do

begin c:=a+b; a:= b; b:=c; write(', ',c); end;

end.

二、while 當型迴圈語句

對於for迴圈有時也稱為計數迴圈,當迴圈次數未知,只能根據某一條件來決定是否進行迴圈時,用while 語句或repeat語句實現迴圈更方便。     格式:        while 布林表示式 do ;          《迴圈體》   while語句的執行過程為:   1、判斷布林表示式的值,布林表示式的值為true時,執行do後面的語句(步驟2),否則執行步驟4;   2、執行迴圈體語句;   3、返回步驟1;   4、結束迴圈,執行while的下乙個語句。   說明: while語句的特點是先判斷,後執行。 當布林表示式成立時,重複執行do後面迴圈體的語句。

例4_3、斐波那契數列的第n項的值恰好大於10000,求n。   var a,b,c,n: integer;

begin     a:=0; b:=1; n:=2;    while c<=10000 do     begin

c:=a+b; a:=b; b:=c; n:=n+1;     end;    writlen('n=',n);           

end.   

例4_4、求兩個正整數m和n的最大公約數。   分析:採用輾轉相除法求解,分別用m、n、r表示被除數、除數、餘數。   1、求m/n的餘數r;

2、若r=0,則n為最大公約數,若r≠0,執行第3步;   3、將n的值賦於m,將r的值賦於n;   4、返回重新執行第1步。   var m,n,r:integer;   begin     writeln('input m,n:'); readln(m,n);     r:=m mod n;     while r<>0 do     begin      m:=n; n:=r; r:=m mod n     end;     writeln('the greatest common divide is: ',n);   end.

二、repeat-until直到型迴圈語句   repeat-until語句的含義是 「重複執行迴圈,直到指定的條件為真時為止」。   直到迴圈語句的一般形式:      repeat       語句1;       :       語句n;    until 布林表示式;   repeat與until之間的所有語句稱為迴圈體。   說明:   1、repeat語句的特點是:先執行迴圈,後判斷結束條件,因而至少要執行一次迴圈體。   2、repeat-until是乙個整體,它是乙個(構造型)語句,不要誤認為repeat是乙個語句, until是另乙個語句。   3、repeat迴圈體可以是若干個語句,不需用begin和end。

while迴圈和repeat迴圈是可以相互轉化的。

例5_5、兩個正整數的最大公約數,可用repeat-until迴圈實現:

本例輸出語句中有m、n的原值,所以在程式中增加了兩個中間變數a、b。   var m,n,r,a,b : integer;   begin        write('input m,n='); readln(m,n);

a:=m; b:=n;    repeat     r:=a mod b; a:=b; b:=r;    until r=0;    writeln('the greatest common divide of ',m, 'and ',n, 'is ',a);   end.     

一般說來,用for 迴圈比較簡明,只要能用for迴圈,就盡量作用for迴圈。只在無法使用for迴圈時才用while迴圈和repeat-until迴圈, for 迴圈在大多數場合也能用whiel和repeat-until迴圈來代替。一般for迴圈用於有確定次數的迴圈,而while和repeat-until 迴圈用於未確定迴圈次數的迴圈

Delphi基礎語法

1 lowercase const s string string uppercase const s string string 2 comparestr const s1,s2 string integer 本函式區分大小寫,是對比字母ascii的值,得出值的差,是從第乙個字母開始對比,如果對比...

第2章 基礎語法 迴圈語句

本章節將向大家介紹python的迴圈語句,程式在一般情況下是按順序執行的。程式語言提供了各種控制結構,允許更複雜的執行路徑。迴圈語句允許我們執行乙個語句或語句組多次,下面是在大多數程式語言中的迴圈語句的一般形式 python提供了for迴圈和while迴圈 在python中沒有do.while迴圈 ...

swift基礎語法 13 for迴圈語句

oc int sum 0 for int i 0 i 10 i nslog d sum 輸出結果 10 int sum 0 int i 0 for i 10 i nslog d sum 輸出結果 10 int sum 0 int i 0 for i 10 nslog d sum 輸出結果 10 in...