2016-02-25 48 views
-2

我正在寻找一个简单而简洁的方式来做到这一点:如何简化这个if-else结构?

例子:

if textbox5.text = "1234" then textbox6.text= "10" (1+2+3+4) 

     If TextBox5.TextLength = 1 Then 
     TextBox6.Text = TextBox5.Text.Substring(0, 1) 

    ElseIf TextBox5.TextLength = 2 Then 
     TextBox6.Text = Val(TextBox5.Text.Substring(0, 1)) + Val(TextBox5.Text.Substring(1, 1)) 

    ElseIf TextBox5.TextLength = 3 Then 
     TextBox6.Text = Val(TextBox5.Text.Substring(0, 1)) + Val(TextBox5.Text.Substring(1, 1)) + Val(TextBox5.Text.Substring(2, 1)) 

    ElseIf TextBox5.TextLength = 4 Then 
     TextBox6.Text = Val(TextBox5.Text.Substring(0, 1)) + Val(TextBox5.Text.Substring(1, 1)) + Val(TextBox5.Text.Substring(2, 1)) + 
      Val(TextBox5.Text.Substring(3, 1)) 

    ElseIf TextBox5.TextLength = 5 Then 
     TextBox6.Text = Val(TextBox5.Text.Substring(0, 1)) + Val(TextBox5.Text.Substring(1, 1)) + Val(TextBox5.Text.Substring(2, 1)) + 
      Val(TextBox5.Text.Substring(3, 1)) + Val(TextBox5.Text.Substring(4, 1)) 

    ElseIf TextBox5.TextLength = 6 Then 
     TextBox6.Text = Val(TextBox5.Text.Substring(0, 1)) + Val(TextBox5.Text.Substring(1, 1)) + Val(TextBox5.Text.Substring(2, 1)) + 
      Val(TextBox5.Text.Substring(3, 1)) + Val(TextBox5.Text.Substring(4, 1)) + Val(TextBox5.Text.Substring(5, 1)) 
+1

请阅读[问]并使用描述问题的标题。 – Plutonix

回答

1

你想要做什么是抓住每个字符串中的字符,并将其转换为一个号并添加它没有特定的if/elses不同的字符串长度。

Dim i as integer 
For Each c As Char in TextBox5.Text 
    i= i + Integer.Parse(c) 
Next 
TextBox6.Text = i 

我习惯C#,所以语法可能不准确,但这通常是你在找什么。

+3

只是要回答这个:)。我建议你使用'Integer.Parse()'而不是'Val()'。 –

+0

非常感谢astrosteve。 – Abdelmouttalib