作者kenbill8899 (Yen-j)
看板C_Sharp
標題[問題]c# 迴圈的問題
時間Wed Oct 19 23:34:08 2016
這是我c#程式碼
if(trackBar1.Value.ToString()=="0")
{
arr4[0]="0";
arr4[1] = "0";
arr4[2] = "0";
}
if (trackBar1.Value.ToString() == "1")
{
arr4[0] = "0";
arr4[1] = "3";
arr4[2] = "2";
}
if (trackBar1.Value.ToString() == "2")
{
arr4[0] = "0";
arr4[1] = "6";
arr4[2] = "4";
}
想問說因為我光是trackBar1做的判斷就有9個(因為太多就擷取一小部分)
而我還有 trackBar2、trackBar3......(共12個)要做同樣的判斷方式存到
陣列裡
大概的情況像下方 如同上面打的 只是有些許差異
if (trackBar2.Value.ToString() == "0")
{
arr5[0] = "0";
arr5[1] = "0";
arr5[2] = "0";
}
if (trackBar2.Value.ToString() == "1")
{
arr5[0] = "0";
arr5[1] = "3";
arr5[2] = "2";
}
想問說有甚麼快速的作法 能減少程式的撰寫
之前想說不知道能不能用
int i=1
while(i<13)
if (trackBari.Value.ToString() == "1")
{
arr5[0] = "0";
arr5[1] = "3";
arr5[2] = "2";
}
但發現不能使用 請問還有其他方法能夠減少程式嗎
希望有人能夠指點我一下 謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.99.173
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1476891250.A.573.html
1F:推 yeo1987: 判斷的部分可以改成switch case 10/19 23:43
謝謝您的建議!!
2F:推 gary0942767: array長度固定的話,可以用array[,]來儲存 10/19 23:53
3F:推 gary0942767: trackbar如果是winform的元件,可以用controls.find 10/19 23:57
請問您能夠講詳細一點嗎
因為我有點不太懂 希望你能教學一下
4F:→ gary0942767: 來找出指定元件,再搭配轉型作判斷 10/19 23:57
5F:推 YahooTaiwan: arr5[] 要塞的值有規則嗎? 10/20 00:09
基本上要看trackbar讀到什麼
arr5才會決定存什麼
※ 編輯: kenbill8899 (27.246.72.141), 10/20/2016 00:15:37
※ 編輯: kenbill8899 (27.246.72.141), 10/20/2016 00:20:17
※ 編輯: kenbill8899 (27.246.72.141), 10/20/2016 00:21:34
6F:推 gary0942767: 修正一下,如果元件確定存在,可以直接從父層的contr 10/20 08:47
7F:→ gary0942767: ols取出,我以textbox舉例,有三個元件名稱為tbx1-3, 10/20 08:47
8F:→ gary0942767: 用this.controls[tbx1]可以取出tnx1,因為取出來型態 10/20 08:47
9F:→ gary0942767: 為control,所以要轉型為textbox,才可以拿來使用 10/20 08:47
10F:推 gary0942767: 程式可以改為,在for底下組出元件名稱,用controls[ 10/20 09:00
11F:→ gary0942767: 元件名稱]取出,然後判斷value,將值給進array[,]裡 10/20 09:00
12F:→ Litfal: 初始化時,把trackbar和array做配對塞到字典裡,或是把 10/20 13:14
13F:→ Litfal: array指派給trackbar.Tag做配對。 10/20 13:15
14F:推 outofyou: 推字典,輸入資料與輸出資料的對應,除非你有特別規律 10/21 15:24
15F:→ outofyou: 要不然想簡化if的程式碼,就是用讀取字典的方式來做。 10/21 15:25
16F:推 vi000246: 我在java板的這篇你可以看一下 是C# code #1O1jA9lr 10/21 22:18
17F:→ vi000246: 字典可以擴充 有幾個判斷就加幾個鍵值 10/21 22:19
18F:→ testPtt: if要else避免全部if都跑 10/22 18:23
19F:推 yzfr6: 判斷式可以用一個函式或Class取代 10/25 13:53
20F:→ yzfr6: switch case 可以用其它方式取代 10/25 13:53