2013-03-21 82 views
0

我有一個If,Elseif,Else語句。如果遇到第一個If,我想插入徑流和滲流的計算值。但是,如果不滿足第一個IF條件,則徑流和滲流總是被賦值爲0。下面粘貼了我的代碼。我遇到的問題是,如果在第一個IF語句後設置滲濾和徑流= 0,我的打印子將始終打印0,而不是計算值。如果不滿足第一個IF條件,如何將常數和徑流分配爲常量?我知道我可以在每個後續條件中分配runoff = 0,percolation = 0,但我試圖減少我的代碼的龐大程度。VBA如果,elseif語句,當第一個IF語句不符合時如何設置常量

Do 
     If (fc - WC(j - 1) + RefET(i)) <= Precip(i) Then 
       WC(j) = fc 
       WCinit(j) = WC(j) 
       Runoff(j - 1) = (Precip(i) - (fc - WC(j - 1) + RefET(i))) * 0.5 
       Percolation(j - 1) = (Precip(i) - (fc - WC(j - 1) + RefET(i))) * 0.5 
' Runoff(j - 1) = 0 <-If I assign these here, it "overrides" the value I calculated on the previous line. I want to reduce the bulkiness of my code by assigning these values if the first IF condition is not met 
' Percolation(j - 1) = 0 
      ElseIf (WC(j - 1) + Precip(i) - RefET(i)) > pwp Then 
       WC(j) = WC(j - 1) + Precip(i) - RefET(i) 
       WCinit(j) = WC(j) 
       Runoff(j - 1) = 0 
       Percolation(j - 1) = 0 
     Else 
       WC(j) = pwp 
       WCinit(j) = WC(j) 
       Runoff(j - 1) = 0 
       Percolation(j - 1) = 0 
     End If 
       j = j + 1 
       i = i + 1 
       Loop While j < 14 
+1

在第一個if語句之前分配runoff = 0,percolation = 0。 – 2013-03-21 14:27:17

+0

但是,如果在第一個IF語句中滿足條件,我不希望它們等於0,但等於計算值,只有滿足2和3條件時它們等於0.如果將它們設置爲0在第一個IF語句之前,它們將始終返回0 – user1977802 2013-03-21 16:31:03

回答

1

或者當你對它們進行定義時。 Dim Percolation as int = 0

+0

這不是VB.Net :)另外,在Do Loop之外設置變量不會在第二輪將其值設置爲0 – 2013-03-21 15:15:02