查看完整版本: 請問如何讓迴圈指定數值運算
頁: [1]

asd0604 發表於 2014-7-4 08:51 AM

請問如何讓迴圈指定數值運算

本帖最後由 asd0604 於 2014-7-4 08:52 AM 編輯

如標題

請問如何讓迴圈指定數值

如 i = 1 to 10  改為 i =2 3 5 9 下去執行運算

For  i = 1 to 10  改為  For i = 2 3 5 9


[計算式]

next

剛學程式不久請指點謝謝

使用程式: Visual Basic 2010 Express
<div></div>

johnwanz 發表於 2014-7-4 09:06 AM

如果你要用來計算的數據, 沒有規律性, 把迴圈跟計算內容分開, 就可以不一致. 單獨一個變數做迴圈次數, 另外使用一個陣列存放每一次要使用的數據, 使用迴圈變數做index參考, 這樣就可以沒有規律, 跟計次數據分離.

sam30525sam 發表於 2014-7-4 09:35 AM

就以你的問題,我用虛擬碼回你for i = 1 to 10
{
    if (i==2 or i==3 or i==5 or i==9)
    {
        // do something
    }
    else
    {
        continue;
    }
}我比較想要知道你是什麼問題才會這樣使用迴圈?
如果可以,你最好把情況詳細說明一點,
這樣子你會得到比較多,也更實用的解答。

asd0604 發表於 2014-7-4 05:05 PM

johnwanz 發表於 2014-7-4 09:06 AM static/image/common/back.gif
如果你要用來計算的數據, 沒有規律性, 把迴圈跟計算內容分開, 就可以不一致. 單獨一個變數做迴圈次數, 另外 ...

你好,請問可以教我一下陣列的使用方式嗎?我需要代不同數字下去計算,會有不同結果。所以沒規律可言。謝謝您...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

asd0604 發表於 2014-7-4 05:30 PM

sam30525sam 發表於 2014-7-4 09:35 AM static/image/common/back.gif
就以你的問題,我用虛擬碼回你我比較想要知道你是什麼問題才會這樣使用迴圈?
如果可以,你最好把情況詳細 ...

如同上述
需要代入不同數值下去運算會有不同結果
上述只是舉例
我需計算的數值可能到好幾萬
若設定For 1 to 10000
迴圈會跑比較久
故想問看看是不是能用陣列或其他方法
直接代入我想計算之數值下去做運算
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

sam30525sam 發表於 2014-7-4 06:04 PM

本帖最後由 sam30525sam 於 2014-7-4 06:04 PM 編輯

asd0604 發表於 2014-7-4 05:30 PM static/image/common/back.gif
如同上述
需要代入不同數值下去運算會有不同結果
上述只是舉例

不好意思,
我希望你可以再詳細的說明你要解決的問題。

例如說:
「需要帶入不同數值下去運算會有不同結果」,這句話有很多意思,
1. 帶入不同長度的數列數值
2. 帶入不同型別的數值
或者,「為什麼會有不同的結果?」是因為帶入的計算式不同嗎?
那這樣你的1~10000只是編號,而不是數值…

若簡單點講,
希望你把「有可能的輸入」、你「期望的輸出」給打出來,
另外最好還要有兩~三個例子說明,
不然模糊的提問只能給予模糊或錯誤的解答。

=====

我現在無法理解你的問題點在哪?
你說你需要計算的數值到好幾萬,又說不同數值代下去有不同的結果,
這感覺就像是switch或if-else-if的感覺,
例如說:
總共有200個學生,
編號1~100的學生,請走A路線,
編號101~150的學生,請走B路線,
其餘走C路線。for(i=1~200)
{
    if(i=1~100)
    {
         // A路線
    }
    elseif(i=101~150)
    {
        // B路線
    }
    else
    {
        // C路線
    }
}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

asd0604 發表於 2014-7-4 07:24 PM

感謝各位的建議我學到很多的程式邏輯
問題已解決
運用以下之方法


[*]Dim list As New ArrayList
[*]        list.Add(I1)
[*]        list.Add(I2)
[*]        list.Add(I3)
[*]        list.Add(I4)
[*]        For Each i In list
[*][運算]
[*]
[*]Next





Jeepluo 發表於 2014-7-7 01:37 PM

      Dim Num() = {2, 3, 5, 9}  ' 你要值放在這裡
        For i = 0 To Num.Length - 1
            MsgBox(Num(i))   ' 讀出的內容
        Next
頁: [1]