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
"點在座標軸上"
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...