關於for next語句的問題,VB的for next語句問題

時間 2021-08-14 09:08:52

1樓:濤濤和俊俊

n=0for i=1 to 3

for j=i to1 step-1

n= n + 1

next j,i

print n;i;j

比如這個題目的i,j結束迴圈時是3,1 ,是在這個基礎上再+1既退出迴圈後是4,0,確實是要在迴圈過後加1,因為只有條件為假的時候,才退出迴圈

第二個問題回答:

迴圈過程為:

當k=0時候執行 a(0+1)=2 即(a(1)=2)

b(3-0)=a(0+1) 即(b(3)=a(1)=2

當k=1時候執行 a(1+1)=4 即(a(2)=4)

b(3-1)=a(1+1) 即(b(2)=a(1)=4

當k=2時候執行 a(2+1)=6 即(a(3)=6)

b(2-1)=a(1+1) 即(b(1)=a(3)=6

當k=3時候跳出迴圈

列印 的就是b(3)=2

2樓:六中初三二

檢查一下你的句子是不是寫錯了啊

3樓:

是的,k是會+1的,你還是很細緻的

4樓:崇勝居綺豔

for-next迴圈指由for語句、next語句的迴圈三者構成的迴圈,它是一般格式為:

for〈迴圈變數〉=〈迴圈變數初值〉to〈迴圈變數終值〉

step〈迴圈變數增量〉

迴圈體next〈迴圈變數〉

for語句稱為"迴圈起始語句"或"迴圈說明語句",它的作用是確定迴圈變數的值如何變化,從而控制迴圈的次數。

"迴圈變數初值"、"迴圈變數終值"和"迴圈變數增量"可以是常數、變數或表示式。

next語句是"迴圈終端語句",它的作用是標誌迴圈結構的範圍,在for語句和next語句之間的語句的語句組就是迴圈體。每次迴圈執行到next語句時,迴圈變數按步長增值。

請注意:

①for語句與next語句必須成對出現,缺一不可;

②for語句必須在next語句之前;

③for語句中的"迴圈變數"與next語句中的"迴圈變數"必須是同一變數。

④如果步長為1,則"step"可以省略。

/2.for-next迴圈的執行過程

如果有以下迴圈:

fori=atob

step

cprinti

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是合法的。但由於迴圈有兩個出口,不符合結構化原則,故不提倡使用。

vb的for next語句問題

5樓:

for迴圈的格式是:

for 迴圈變數=初值 to 終值 [step 步長][語句]

next[迴圈變數]

當步長預設時,預設值為1。

在visual basic中for迴圈屬於“先檢查後執行”語句,這種語句的執行過程:

當步長為正,“迴圈變數”首先取得“初值”,檢查是否超過“終值”,如果超過就一次也不執行而跳出迴圈。如果沒有超過就執行迴圈體內的語句;然後把“迴圈變數”+“步長”賦給“迴圈變數”;然後再與終值比較,如果小於終值則執行語句。重複上述過程,直到迴圈變數超過終值。

當步長為負,則要檢查“迴圈變數”是否小於“終值”。

所以,當k=10時,k值不超過終值10,程式會執行下一輪迴圈,當k=11時,11>終值10,程式不再迴圈,此時k已等於11

“next a”,next a就是相當於將此時的a加上一個d.

希望對你有所幫助!

關於vb 中 for next語句中迴圈變數與step的問題

6樓:匿名使用者

哦,這個結果我已經執行過了!

都是11!沒什麼區別!

從0-1,每次

增加0.1,迴圈11次。所回以累加後和為答11從0-0.1,每次增加0.01,迴圈11次,所以累加後和也為11沒什麼區別!!!

下面是我執行的**

private sub command1_click()n = 0

for i = 0 to 0.1 step 0.01n = n + 1

next

print "n=" & n

k = 0

for j = 0 to 0.1 step 0.01k = k + 1

next

print "k=" & k

end sub

剛才又把i的變數定義為整型,單精度,雙精度。分別實驗了一下,用msgbox嘗試輸出了每次迴圈中i與n的結果,發現當單精度的時候,i=0.1,....

0.7,0.800001,0.

90001,所以導致最後結果就變成10次了!

因此懷疑是單精度的時候,在0.7+0.1的過程中,導致結果運算出錯。就導致後面一系列的錯誤了。。

如果你還想查具體原因,參照單精度的範圍,自己再仔細研究了。

7樓:

這是“精度”的問題,

這個 for i = 0 to 0.1 step 0.01 的i值遠遠超過了single的範圍,先看看single與double的區別你就會明專白為什麼:

single(單屬精度浮點型)變數儲存為 ieee 32 位(4 個位元組)浮點數值的形式,

它的範圍在負數的時候是從 -3.402823e38 到 -1.401298e-45,

而在正數的時候是從 1.401298e-45 到 3.402823e38。single 的型別宣告字元為感嘆號 (!)。

double(雙精度浮點型)變數儲存為 ieee 64 位(8 個位元組)浮點數值的形式,

它的範圍在負數的時候是從 -1.79769313486232e308 到 -4.94065645841247e-324,

而正數的時候是從 4.94065645841247e-324 到 1.79769313486232e308。double 的型別宣告字元是數字符號 (#)。

8樓:河中的沙粒

single 為單精度浮點型,由於你用的是小數,在記憶體計數器中0.01和0.1的差別不只是10倍的版關係,具體你可權以再百科中看一下他們在記憶體中的儲存數是多少,所以你如果用single 型別的話就不可以用小數來區別這兩種演算法,如果想用小數區分的話推薦你用其他型別

關於for next迴圈語句

9樓:

步長是迴圈變copy量每次的增加量,步長的數值型別應該和迴圈變數一樣, 其值可以是正數(遞增迴圈)或是負數(遞減迴圈),不能為0(為0自己可以試試,死迴圈)

,如果沒有特別指定,則步長預設為1.

不知道樓主所說的是什麼,給一下具體**

10樓:匿名使用者

比如 for i=3 to 2

"初值"=3

"終值"=2

這個迴圈的終止條件就是i<=2,但初值就已經是3,所以步長step=0,直接跳出迴圈

11樓:匿名使用者

是當一變數以

來表示式進源行運算時候,當條件

bai不符合的時候跳出du運算

vb中預設步進是

zhi1

按daoc類寫就是

for (int i=0; i<10; i++) {}i初始值是0, 進入迴圈, 每次迴圈i=i+1 當不符合i<10的時候迴圈終止, i=i+1就是步進

有關VB6 for next語句的問題急急急急急急急急急急好的加分

常山大寶 下面是command1單擊事件 private sub command1 click on error goto err dim a as integer a me.text1 me.label4.caption 0for i 1 to text2 me.label4.caption me...

關於java迴圈語句的問題,關於Java迴圈語句的問題

1 while迴圈語句有入口條件,而do while語句沒有入口條件。2 while迴圈語句在程式執行語句過程中可能一次也不執行,而do while迴圈語句至少被執行一次。3 語法不同。while 迴圈條件 do 迴圈操作 while 迴圈條件 while 語句會首先判斷條件是否成立?如果條件成立了...

關於sql語句統計查詢的問題

1全部select t.總編號,select count 結果1 from table1 where 總編號 t.總編號 as 成功記錄數 select count 結果2 from table1 where 總編號 t.總編號 as 失敗記錄數 select count 結果3 from tabl...