vb中的case語句,VB中的CASE語句

2022-01-23 08:22:06 字數 6197 閱讀 6715

1樓:趣園藝

在vb.net中vb.net case語句就是比較常用的一種,下面是詳細的介紹和**的演示:

1、可以用 select...case 語句來替換 if...then...

else 語句,所不同的是if 和 elseif 語句可在每個語句中計算不同的表示式,而 select 語句對單個表示式只計算一次,然後將其和不同的值比較。

function bonus(byval performance as integer, _  byval salary as decimal) as decimal

select performance

case 1

return salary * 0.1

case 2

return salary * 0.3

case 3

return salary * 0.7

case 4

return salary * 0.9

case 5

return salary * 1.2

end select

end function

2、vb.net case語句可包含多個值和某個範圍的值,**案例如下:

function bonus(byval performance as integer, _  byval salary as decimal) as decimal

select performance

case 1

return salary * 0.1

case 2,3

return salary * 0.3

case 3 to 7

return salary * 0.7

case 8 to 9

return salary * 0.9

case is <= 15

return salary * 1.2

case else

return 0

end select

end function

2樓:北正牧職

呵呵,題外話,題目中的象限設定錯了,y<0且x>0怎麼會在第二象限?是在第四象限。改成case語句是下面的**:

private

subcommand1_click()

dimx#,y#x

=val(text1.text)y=

val(text2.text)

select

case

true

case

x>0and

y>0print

"點在第一象限"

case

x<0and

y>0print

"點在第二象限"

case

x<0and

y<0print

"點在第三象限"

case

x>0and

y<0print

"點在第四象限"

case

else

print

"點在座標軸上"

endselect

endsub

3樓:商界小刺蝟

問題出在b = val(text10.text)因為之前b = c + d + g

c,d,g三個數之和賦值給b,

之後 val(text10.text)覆蓋了之前的b = c + d + g

所以不管你三個txt中輸入什麼,b永遠是text10的值。

4樓:

那當然了,因為你在b = c + d + g 後又寫了句

b = val(text10.text)

所以不管你三個txt中輸入什麼,b永遠是text10的值。

5樓:匿名使用者

b = c + d + g

b = val(text10.text)

這樣賦值沒有意義

無論你的cdg為何值,b的值都是text10.text的值

6樓:

private sub command1_click()dim b, c, d, g as integerc = txt_chinesechengji.textd = txt_enghishchengji.textg = txt_mathchengji.

textb = c + d + g

text10.text=b / 3

select case b

case b / 3 >= 80

text10.text = "該生成績優異,可以參評三好學生"

case b / 3 < 80

text10.text = "好好學習 天天向上"

end select

end sub

7樓:匿名使用者

case val(b/3) >= 80

8樓:忘了看什麼

b = c + d + g

b = val(text10.text)

b的值是固定的。

9樓:_昕0昕

b = val(text10.text)

有什麼作用?

vb中case是什麼意思

10樓:匿名使用者

其實case是一個 執行命令

在得到 xx命令的入口後

就順序執行每個 case後面的語句 除非後面有 結束該順序的語句出現否則就順著執行

當遇到結束的 就跳出整個入口

往下執行

11樓:匿名使用者

case 判斷語句

比如:select case a

case 1 '如果a等於1執行**

.... '**

case 2

...case else

...end select

意思就是判斷a是什麼內容。然後根據不同內容執行不同的**

vb中如何使用select case語句

12樓:匿名使用者

語法select case 《指示變數或表示式》

《預設語句組,以上語句組都因情形不符合實際時執行》

end select

其中,表述情形的關鍵字,有is和to,多個情形要並列在一起時,使用逗號(英文)連線。當省略case else語句並且語句組都因情形不符合實際時,語句的執行,會直接到達end select。如果在執行語句的時候,有需要跳過沒有必要再執行的語句而直接結束select case的情況時,請使用exit select。

注意在「《指示變數或表示式》」不是true或false關鍵字時,邏輯運算(and、or、not)會沒有意義。因為邏輯運算的結果是true或false,不是表述具體情況的值或者範圍。需要比較大小時,請使用is、to關鍵字。

以上為了給出一個能夠通用的語法而如此表述。

在「《指示變數或表示式》」是true或false關鍵字時,is、to關鍵字沒有意義。

以上兩種情況,切記不要搞混。

巢狀各語句組中也可以寫入完整的select case語句,像for迴圈中巢狀一個二級迴圈一樣。別誤會,select case不是迴圈語句,是條件選擇語句,與if...elseif...

elseif...end if類似。

基本用法

private sub main()

select case inputbox("請輸入你希望的天氣,從晴天、多雲、陰天、陣雨、小雨、小雪、冰雹中選一個填入。", "請輸入你希望的天氣", "晴天")

使用關鍵字is

private sub main()

select case day(now)

case is <= 10

msgbox "目前是本月上旬!"

case is > 20

msgbox "目前是本月下旬!"

case else

msgbox "目前是本月中旬!"

end select

end sub

《以上**在vb6.0測試通過》

使用關鍵字to

private sub main()

select case weekday(now)

case 1, 7

msgbox "今天是週末!"

case 2 to 6

msgbox "今天不是週末!"

end select

end sub

《以上**在vb6.0測試通過》

關鍵字is和to可以根據需要,在同一條情形中一起使用,例如

case is<=5,8 to 10,is>20

不過要注意的是,to表示的區間,是閉區間,不適用於開區間(或半閉半開區間)。如果一定要用select case來確定數值在哪個區間內,可以這麼做:

private sub main()

on error goto err

dim num as single

num = inputbox("請輸入!")

select case num

case is <= 1

msgbox "這個數不大於1"

case is < 3

msgbox "這個數在1和3之間的開區間內"

case is < 5

msgbox "這個數在3和5之間的半閉半開區間內"

case is <= 7

msgbox "這個數在5和7之間的閉區間內"

case is > 7

msgbox "這個數大於7"

end select

exit sub

err:

msgbox "這個不是可比較的數字"

end sub

此時,各case不能隨便對換順序。雖然這個可以達到我們想要的效果,卻因為不夠嚴謹,讓我憂心忡忡。那麼什麼是最嚴謹的呢?請看高階用法。

高階用法

語法(這裡只是為了更好的理解,稍稍變一下表述,不改變實意。)

select case true

case 《邏輯運算表示式1>

《語句組1>

case 《邏輯運算表示式2>

《語句組2>

....

case 《邏輯運算表示式n>

《語句組n>

case else

《預設語句組,當以上任何邏輯運算都為false時執行》

end select

在此語法下,is、to關鍵字沒有意義,is的值為true(is是變數嗎?這個問題真的好讓人回味啊)

只要邏輯運算表示式的運算結果為true,就執行該case下的語句組。那麼,上面的例子就這麼改。

private sub main()

on error goto err

dim num as single

num = inputbox("請輸入!")

select case true

case num >= 5 and num <= 7

msgbox "這個數在5和7之間的閉區間內"

case num < 3 and num > 1

msgbox "這個數在1和3之間的開區間內"

case num > 7

msgbox "這個數大於7"

case num < 5 and num >= 3

msgbox "這個數在3和5之間的半閉半開區間內"

end select

exit sub

err:

msgbox "這個不是可比較的數字"

end sub

可以看到,順序被我隨意變動了,測試也通過了。那麼,愛琢磨的我,又發現一個問題:select case true可以改成select case false嗎?

答案是,可以。這裡就不作示例了,只給出語法

select case false

case 《邏輯運算表示式1>

《語句組1>

case 《邏輯運算表示式2>

《語句組2>

....

case 《邏輯運算表示式n>

《語句組n>

case else

《預設語句組,當以上任何邏輯運算都為true時執行》

end select

只要邏輯運算表示式的運算結果為false,就執行該case下的語句組。

vb中什麼情況用If和case語句有什麼區別

if 多用於少量選項,select case 多用於大量選項 量少用if,量多用case,看一下 就很清楚了。例1 量多時 sub command1 click index as integer select case index case 0 程式case 1 程式case 2 程式else en...

VB問題!IF語句的!懂的來,VB中的If語句

檢測事件是在文字框中的change事件中判斷,也就是說只要文字框有改變就檢測!如果把其中的 and改寫成 or就可以判斷其中一個文字是否為空!private subtext1 change 判斷文字框最快的速度還是判斷它的長度是否為0iflen text1.text 0 andlen text2.t...

VB中正確的迴圈語句是,vb中的迴圈語句

for x 迴圈變數 1 初始值 to 10 終止值 step 2 步進 next 以上為完整的迴圈結構 1.沒有終止值 所以錯 3.初始值比終止值小 所以步進應該為整數 而它是負數 所以也錯4.初始值大於終止值 預設步進為1 無法迴圈 所以也錯 for語句 for counter start to...