private void button17_Click(object sender, EventArgs e)
        {
             if (i == 0)
               this.textBox1.Text = Convert.ToString("0");
            else
             
                switch(str2)
                {
                    case "+":
                        
                        this.textBox1.Text = Convert.ToString(val3 = val2 + val1); 
                        break;
                    case "-":
                        this.textBox1.Text = Convert.ToString(val3 = val2 - val1);
                        break;
                    case "/":
                        {
                            if (val1 == 0)
                                this.textBox1.Text = "Error";
                            else
                                this.textBox1.Text = Convert.ToString(val3 = val2 / val1);
                            break;
                        }
                    case "*":
                        this.textBox1.Text = Convert.ToString(val3 = val2 * val1); 
                        break;
                    
                   default:
                        this.textBox1.Text = "Error"; break;
                }
                    }

解决方案 »

  1.   

    val3 = val2 + val1;
    this.textBox1.Text = Convert.ToString(val3); 
    这样试试
      

  2.   

    使用swith时,可以没有case,但必须要有default,是swith的语法规定的
      

  3.   


    哥们, 你说反了吧?建议在 switch(str2) 前加一条语句判断一下str2的值是否有与case分支相同的, 再查找原因。
      

  4.   

    str2
    从那里来的吗要说明他的来源。。要不程序不知它是做什么的。就只好default了啊。 
      

  5.   

    switch 括号里边的不能是字符串!
    只能是 如 int char 等
      

  6.   

    多谢各位,是str2的值有问题,已经o了。