關于FOR
FOR-NEXT循環指由FOR語句、NEXT語句的循環三者構成的循環,它是一般格式為:
FOR〈循環變量〉=〈循環變量初值〉TO〈循環變量終值〉
STEP〈循環變量增量〉
循環體
NEXT〈循環變量〉
FOR語句稱為"循環起始語句"或"循環說明語句",它的作用是確定循環變量的值如何變化,從而控制循環的次數。
"循環變量初值"、"循環變量終值"和"循環變量增量"可以是常數、變量或表達式。
NEXT語句是"循環終端語句",它的作用是標志循環結構的范圍,在FOR語句和NEXT語句之間的語句的語句組就是循環體。每次循環執行到NEXT語句時,循環變量按步長增值。
請注意:
①FOR語句與NEXT語句必須成對出現,缺一不可;
②FOR語句必須在NEXT語句之前;
③FOR語句中的"循環變量"與NEXT語句中的"循環變量"必須是同一變量。
④如果步長為1,則"STEP"可以省略。
/*-NEXT循環的執行過程
如果有以下循環:
FORi=a TO b STEP c
PRINTi
NEXTi
在執行此循環時,按以下步驟進行:
①循環變量i取初值a;
②將i的值與終值b比較,如果i未超過b,則接著執行步驟③到⑤,否則跳過步驟③到⑤,而直接執行步驟⑥;
③執行循環體(PRINTi);
④NEXT語句,循環變量i按步長c增值;即i+c->i。此時循環變量i的值已發生了變化,由一個新值取代了原來的值。"NEXTi"不是"取下一個值i"的意思:
⑤返回執行步驟②;
⑥循環執行終止,接著執行NEXT語句的下一個語句。
/3.說明:
①終止循環的條件是"循環變量的值超過終值",而不是"循環變量的值等于終值"。
②循環的次數可以直接從FOR語句中指定的參數計算出來:
循環終值-循環初值
循環次數=----------+1
步長+1
③循環變量盡量用整型變量,以免出現誤差。
雖然QBASIC允許循環變量為任何數值型變量,但由于實型量在存儲和運算過程中會出現一些小的誤差,因此可能會使循環次數多一次或少一次。
④循環變量初值和終值可以是正值、負值或零。步長可以是正值或負值。它們可以是整數或小數。但提倡用整數。
⑤當步長為零時,循環永不終止,成為"死循環"。下面程序運行時就是"死循環"。
FORx=2TOSTEP0
PRINTx
NEXTx
END
⑥循環變量的作用主要是用來對循環進行控制,根據它的值決定何時終止循環過程。循環變量可以在循環體中被引用,也可以不在循環體中出現。
⑦在循環體內一般不要對循環變量再賦值,否則將影響原有的循環控制狀況。
⑧流程可以從循環體內轉移到循環體外,但不能從循環體外轉到循環體內。
FORk=1TO10
s=s+k*k
IFs>200GOTOa:
NEXTk
a:PRINTk
END是合法的。但由于循環有兩個出口,不符合結構化原則,故不提倡使用。
關于FOR
FOR-NEXT循環指由FOR語句、NEXT語句的循環三者構成的循環,它是一般格式為: FOR〈循環變量〉=〈循環變量初值〉TO〈循環變量終值〉 STEP〈循環變量增量〉 循環體 NEXT〈循環變量〉 FOR語句稱為"循環起始語句"或"循環說明語句",它的作用是確定循環變量的值如何變化,從而控制循環的次數。
"循環變量初值"、"循環變量終值"和"循環變量增量"可以是常數、變量或表達式。 NEXT語句是"循環終端語句",它的作用是標志循環結構的范圍,在FOR語句和NEXT語句之間的語句的語句組就是循環體。
每次循環執行到NEXT語句時,循環變量按步長增值。 請注意: ①FOR語句與NEXT語句必須成對出現,缺一不可; ②FOR語句必須在NEXT語句之前; ③FOR語句中的"循環變量"與NEXT語句中的"循環變量"必須是同一變量。
④如果步長為1,則"STEP"可以省略。 /*-NEXT循環的執行過程 如果有以下循環: FORi=a TO b STEP c PRINTi NEXTi 在執行此循環時,按以下步驟進行: ①循環變量i取初值a; ②將i的值與終值b比較,如果i未超過b,則接著執行步驟③到⑤,否則跳過步驟③到⑤,而直接執行步驟⑥; ③執行循環體(PRINTi); ④NEXT語句,循環變量i按步長c增值;即i+c->i。
此時循環變量i的值已發生了變化,由一個新值取代了原來的值。"NEXTi"不是"取下一個值i"的意思: ⑤返回執行步驟②; ⑥循環執行終止,接著執行NEXT語句的下一個語句。
/3.說明: ①終止循環的條件是"循環變量的值超過終值",而不是"循環變量的值等于終值"。 ②循環的次數可以直接從FOR語句中指定的參數計算出來: 循環終值-循環初值 循環次數=----------+1 步長+1 ③循環變量盡量用整型變量,以免出現誤差。
雖然QBASIC允許循環變量為任何數值型變量,但由于實型量在存儲和運算過程中會出現一些小的誤差,因此可能會使循環次數多一次或少一次。 ④循環變量初值和終值可以是正值、負值或零。
步長可以是正值或負值。它們可以是整數或小數。
但提倡用整數。 ⑤當步長為零時,循環永不終止,成為"死循環"。
下面程序運行時就是"死循環"。 FORx=2TOSTEP0 PRINTx NEXTx END ⑥循環變量的作用主要是用來對循環進行控制,根據它的值決定何時終止循環過程。
循環變量可以在循環體中被引用,也可以不在循環體中出現。 ⑦在循環體內一般不要對循環變量再賦值,否則將影響原有的循環控制狀況。
⑧流程可以從循環體內轉移到循環體外,但不能從循環體外轉到循環體內。 FORk=1TO10 s=s+k*k IFs>200GOTOa: NEXTk a:PRINTk END是合法的。
但由于循環有兩個出口,不符合結構化原則,故不提倡使用。
關于for……next語句內外循環的問題因為我不是很理解FORNEXT循
以第二個為例吧 第一個有三個循環說起來比較麻煩先循環for i = 1 to 20 step 2 【i是變量 從1開始循環到20 step代表步長 每循環一次i加2】i=1 x=0【因為第二個循環是屬于第一循環里的 所以這時進入第二個for循環,第二個中j是變量 從一開始到20 每次增加3 】x= x+1=1 然后接下來就next j了 所以 接著直接循環第二個循環 x= x+1=2 直到j到了20或大于20 退出j循環 然后接著又是i循環 i=2 x=0 再進入第二個循環 .直到i到20 然后退出循環。
for next語句
for i = 1 to 3 'i會從1到3。
..for j = 1 to i '當i=1時,這個循環做一次,為3時循環3次。
。.for k =j to 3 '當j=1時,這個循環做3次,為3時做一次。
..a=a+1 。
。.next k 。
..next j next i 這個循環其實很簡單,當i改變時,里面的循環次數就會改變,只能自己抽絲剝繭,仔細分析.具本值變化如下i的第1次循環,I=1,J的第1次循環,J=1,K的第1次循環,K=1,這時A=1i的第1次循環,I=1,J的第1次循環,J=1,K的第2次循環,K=2,這時A=2i的第1次循環,I=1,J的第1次循環,J=1,K的第3次循環,K=3,這時A=3i的第2次循環,I=2,J的第1次循環,J=1,K的第1次循環,K=1,這時A=4i的第2次循環,I=2,J的第1次循環,J=1,K的第2次循環,K=2,這時A=5i的第2次循環,I=2,J的第1次循環,J=1,K的第3次循環,K=3,這時A=6i的第2次循環,I=2,J的第2次循環,J=2,K的第2次循環,K=2,這時A=7i的第2次循環,I=2,J的第2次循環,J=2,K的第3次循環,K=3,這時A=8i的第3次循環,I=3,J的第1次循環,J=1,K的第1次循環,K=1,這時A=9i的第3次循環,I=3,J的第1次循環,J=1,K的第2次循環,K=2,這時A=10i的第3次循環,I=3,J的第1次循環,J=1,K的第3次循環,K=3,這時A=11i的第3次循環,I=3,J的第2次循環,J=2,K的第2次循環,K=2,這時A=12i的第3次循環,I=3,J的第2次循環,J=2,K的第3次循環,K=3,這時A=13i的第3次循環,I=3,J的第3次循環,J=3,K的第3次循環,K=3,這時A=14仔細喲~~。
for next語句
當i=1 時
j=1
K=1 TO 3
A=A+1計算三次 A變為3
i=2時
J=1 TO 2
J=1
K=1 TO 3
此時A=3 A=A+1 計算三次 變為6
J=2
K=2 TO 3
此時 A=6 A=A+1 計算 2次 變為8
I=3時
J=1 TO 3
J=1
K=1 TO 3
此時A=8 A=A+1 計算三次 變為11
J=2
K=2 TO 3
此時 A=11 A=A+1 計算 2次 變為13
J=3
K=3 TO 3
A=A+1 計算一次 變為14
到這里 所有循環結束
A為14
next語句和exit語句的區別是什么
next 語句是退出本次循環,進行下一次循環
exit 語句是退出循環。
舉例:
int i=0;
int j=0;
while (i{
j=i;
i++;
if (5==i)
{
exit;
}
}循環結束后,j的值應該是4
int i=0;
int j=0;
while (i{
j=i;
i++;
if (5==i)
{
next;
}
}循環結束后,j的值應該為9.
C語言中p=p->next;語句是什么意思
是指針之間的一種傳遞,一般在數據結構中的單鏈表里由應用,這條語句中的p一般指向一個結構體類型的數據,這種類型的數據通常表示節點;結構體里存放的是一些數據和記錄下一個節點地址的指針變量next;這個next就好比鏈條一樣,連接著一個個節點;在單鏈表里,數據是零散的,不像數組那樣的順序存儲方式,每一個數據都有自己特定的位置,可以訪問任何位置;單鏈表呢是通過一個記一個的方式把所有數據連起來的,當我們訪問一條單鏈表的時候,必需從頭節點開始,然而我們也只需要知道頭結點的地址就好了;
比如這條語句p=p->next; 假設p在這條語句之前是指向結構體類型a1的,而a1中的next存的是a2的地址,那么這條語句執行以后,p就指向了a2;
【fornext語句看不懂啊SubFor-test()Fori=1To10Forj=1To10Fork=1To10
這道題叫測試嵌套循環的計數器.首先之所以說i的范圍不對,不滿足循環條件,是因為一般在FOR循環中循環變量會根據步長值自動增加或減少,所以在循環體內不建議改變循環變量的值,而本題中循環體里出現了i=i+1的語句,就改變了循環變量i的值了.其次,運行結果是是101,本題是三層嵌套循環是,i控制第一層循環,j控制第二層,k控制第三層,當循環開始時,i去值1,j取值1,k取值1執行循環體一次,i累加1,也就是i變為2此時k自動增加一個步長變成2,因為k的取值實在1到10之間判斷條件,滿足,所以繼續執行循環體,i繼續累加,如此重復直到k取值為10時,i累加的結果變成11,k繼續增加一個步長變成11超出范圍,到此第三層循環退出,第二層循環的j繼續遞增一個步長變成了2,此時又重新進入第三層循環k重新從1循環到10,i繼續每次累加1,累加的結果是i變成21,當k去取10之后,繼續遞增一個步長值變成11,第三層循環有一次推出,第二層循環的j繼續遞增一個步長值變成3,第三層循環又重新開始,如此重復.當第二層循環的變量j循環到10的時候,第三層循環的變量k又從1循環到10,i的遞增結果變成了101,k繼續遞增一個步長值變成11不符合條件,結束第三層循環,第二層的j也遞增一個步長變成11不符合條件,第二層循環也結束,第一層的循環變量是i,i遇到next i語句繼續遞增變成102,判斷條件不成立,第一層循環也結束,所以最后程序結束以后,i,j ,k三個循環變量的值應該是102,11,11.最后需要強調的是對于for循環,程序執行到next語句時,本層的循環變量自動遞增會遞減一個步長值,然后根據終值條件判斷是否滿足,如果滿足則循環繼續進行,不滿足則本層循環結束.。