vb中if巢狀語句,在VB中如何簡化過多巢狀的if語句?

2021-12-19 14:47:10 字數 5960 閱讀 9179

1樓:baby_原來

if 條件為真 then

執行語句

end if(判斷結束)

if a=3 then

if b=2 then

if c=7 then

if d=8 then

以上條件都成立的時候執行下邊一段話

.....執行**並結束這個判斷

(假如d=5,則執行下邊的**)

else

...........執行**

end if (這裡是結束d=8 這個條件的)end if(這裡是結束c=7這個條件的)end if(這裡是結束b=2這個條件的)end if(這裡是結束a=3這個條件)

2樓:

vb6中 if then 可以允許寫在一行中,如果一行中的then後需要跟不止一個語句,可以在語句間加冒號,如:

if 2 = 2 then text1.text = 2: text2.text = 2

要理解這一點,你只需要記住 vb語句與語句之間可以通過換行符來識別...

3樓:匿名使用者

if語句可以像下面這樣子寫

第一種if ... then ...

第二種if ... then

......

end if

第三種if ... then

......

else

......

end if

第四種if ... then ... else ...

總的來說,如果是分開兩行寫的話,就要end if,一行的就不用了

4樓:谷歌vip使用者

不需要了

假如判斷條件a=b為真,執行suba,否則執行subb,用下面的**格式可以省略end if,else不用也可以。

if a=b then suba else subb寫在一行可以省略end if。

如果a=b你要同時執行suba和subb的話,語句間用半形的:隔開就可以了

if a=b then suba:subb else subb用:符號可以在一行**中寫n行**。

例如 a=b:a=c:a=d

等價於a=b

a=ca=d

這樣也是不會出錯的。

你上面所提到的

if keyascii=13 then text2.setfocus等價於if keyascii=13 thentext2.setfocus

end if

如果分開兩行寫必須有end if

因為編譯器需要知道你在什麼時候結束if判斷,判斷條件和處理結果寫在一行編譯器可以知道你什麼時候結束if語句,如果寫在兩行,編譯器就無法識別了,所以必須新增end if。

5樓:荔菲彭澤

if keyascii=13 then text2.setfocus

這一句不需要end if

在vb中如何簡化過多巢狀的if語句?

6樓:匿名使用者

何必用vb,直接操作就可以,選定a5到b100,假設100行資料,然後-編輯-定位-定位條件的空值,然後在編輯欄內輸入 = ,最後按ctrl+回車即可

7樓:匿名使用者

if b(e) <= 10 then

s1 = s1 + 1

elseif b(e) <= 20 thens2 = s2 + 1

elseif b(e) <= 50 thens3 = s3 + 1

elseif b(e) <= 100 thens4 = s4 + 1

elseif b(e) <= 1000 thens5 = s5 + 1

elseif b(e) <= 10000 thens6 = s6 + 1

elseif b(e) <= 100000 thens7 = s7 + 1

end if

8樓:寒信

方法一if b(e) <= 10 then

s1 = s1 + 1

elseif b(e) <= 20 thens2 = s2 + 1

elseif b(e) <= 50 thens3 = s3 + 1

elseif b(e) <= 100 thens4 = s4 + 1

elseif b(e) <= 1000 thens5 = s5 + 1

elseif b(e) <= 10000 thens6 = s6 + 1

elseif b(e) <= 100000 thens7 = s7 + 1

end if

方法二版

權select case b(e)

case <= 10

s1 = s1 + 1

case 10 to 20

s2 = s2 + 1

case 20 to 50

s3 = s3 + 1

case 50 to 100

s4 = s4 + 1

case 100 to 1000

s5 = s5 + 1

case 1000 to 10000

s6 = s6 + 1

case 10000 to 100000

s7 = s7 + 1

end select

關於vb中if 語句的巢狀問題

9樓:【都市精靈

標準的if格式你應該知道吧 我就不說了 只說一下巢狀

在一次if判斷裡,可以巢狀無數個子if判斷(我沒遇到過巢狀到頂的情況),無非是在then後或else後進行巢狀,因為互不影響 所以我就合起來說了:

if [真假判斷語句] then

*** '星號表示其餘的**

if [巢狀的真假判斷語句1] then

[巢狀中if成立 執行的**]

else '可以不要 看情況

[巢狀中if不成立 執行的**]

end if

*** 』星號表示其餘的**

else if [巢狀的真假判斷語句2] then '這裡的if可以跟在if後(加個空格),另起一行也行。如果在巢狀前還有別的**需要執行的話,就參照上面所寫的進行巢狀。

end if '如果if另起一行的話,要兩個end if,否則只要一個

注:注意巢狀的時候最好 用空格 把子判斷推後幾格,看著舒服。頂格寫也行,就是看著亂。

【哥們兒 這可全是我一個字一個字地打的啊~您就給個辛苦費吧~呵呵 有不懂的再通過 補充 問我】

10樓:

if 條件為真 then

執行語句

end if(判斷結束)

if a=3 then

if b=2 then

if c=7 then

if d=8 then

以上條件都成立的時候執行下邊一段話

.....執行**並結束這個判斷

(假如d=5,則執行下邊的**)

else

...........執行**

end if (這裡是結束d=8 這個條件的)end if(這裡是結束c=7這個條件的)end if(這裡是結束b=2這個條件的)end if(這裡是結束a=3這個條件)

希望這樣你可以看的懂

11樓:南極胖熊

if *** then

***else ***

end if

if *** then

***else if *** then

***end if

end if

vb for迴圈裡巢狀if

12樓:匿名使用者

**錯了

for i=1 to 30 '正確

for j = 0 to (k-1)

if a(j),math(i) then '格式為 if……then …… end if

if math(i) <= a(j + 1) thenm(j) = m(j) + 1

end if '你用了兩個if 語句 但是隻用了一個end if

'此處再加上一個 end if 就不會報錯了next j

next i

13樓:匿名使用者

k是什麼呀??

還差個end if 但就算把end if加上也不見得可以執行因為邏輯不對

你到底想實現什麼功能呀??? 說出來看看啊

14樓:

for i = 0 to 30

for j = 0 to (k - 1)

if a(j) < math(i) thenif math(i) <= a(j + 1) then m(j) = m(j) + 1

next j

next i

少一個end if

15樓:匿名使用者

同樓上,你上個end if.

寫**最好能縮排和對齊,不然你會遺漏的,看著也不方便.

16樓:

在end if 後面再加個 end if

關於vb巢狀塊if語句的問題

17樓:網海1書生

private sub form_click()score = val(inputbox("輸入成績"))if score >= 60 then

if score >= 85 then

st = "優秀"

else

st = "合格"

end if

else

st = "不合格"

end if

print st

end sub

18樓:司經賦庚妃

ifscore>=60

then

....

else

ifscore>=85

then

....

else

.....

endif

print

st>60

的當然不會小於49,巢狀以後,輸入49

當然就不顯示了,因為49<60

在最外層的if語句就被排除了。不會執行if內部的語句了。

19樓:歸萱

private sub form_click()dim score, st

score = inputbox("輸入成績")if isnumeric(score) thenscore = val(score)

else

msgbox "輸入一個有效的數字!"

exit sub

end if

if score >= 60 then

if score > 100 then

st = "無效的分數"

elseif score >= 85 thenst = "優秀"

else

st = "合格"

end if

else

if score < 0 then

st = "無效的分數"

else

st = "不合格"

end if

end if

print st

end sub

20樓:匿名使用者

因為你把

if score < 60 then

st = "不合格"

end if

這段寫在了最後一個end if裡面。只要把那段程式和輸出語句寫拉出到你現在的最後一個

end if之後就可以了。

寫巢狀格式的時候一定要注意。

21樓:扣

因為少了一個end if

請教在vb中如何判斷null值,vb上如何判斷空值

哈哈抄,給你說啊vb裡的東西有點襲奇怪,如果它是null的,那麼你直接用 就可以判斷了也就是說你可以這樣寫 if sss then end if 不信你可以試 注意,如果sss的型別是數值型別的,就是等於0而不是null vb 裡不象vc有null 這個值但是他有 vbnullstring 一樣可以...

Vb的Call語句是什麼來的,vb中的call有什麼用???

vb裡call用來呼叫函式或者過程,不過那是過去的用法了。在vb6裡只要把過程名或者函式名寫在要執行的地方就行了,很久以前是要在前面加上call的 過程sub subpro a,b c a b end sub 函式function funpro a,b as integerfunpro a b en...

在vb中min是什麼型別的變數,vb中變數有哪些型別?

1 vb6支援的資料型別,以及儲存空間大小與範圍 資料型別 儲存空間大小 範圍 byte 1 個位元組 0 到 255 boolean 2 個位元組 true 或 false integer 2 個位元組 32,768 到 32,767 long 長整型 4 個位元組 2,147,483,648 到...