程序代码中有个判断,如下:frmLogin.M_BaudRate = "4800";
if (frmLogin.M_BaudRate != "1200" && frmLogin.M_BaudRate != "2400" && frmLogin.M_BaudRate != "4800")
            {
                frmLogin.M_BaudRate = "4800";  //应转到这里
                this.trackBar1.Value = 2;
                this.lblBaudRate.Location = new System.Drawing.Point(276, 160);
            }
            else
            {
                frmLogin.M_BaudRate = "9600";  //实际到了这里
            }请问为什么会是这样?谢谢!

解决方案 »

  1.   

    if (frmLogin.M_BaudRate != "1200" && frmLogin.M_BaudRate != "2400" && frmLogin.M_BaudRate != "4800")
    你用&&表示要三个条件全部等true成立才行,由于frmLogin.M_BaudRate = "4800";所以frmLogin.M_BaudRate != "4800"这个条件等于false,所以会执行frmLogin.M_BaudRate = "9600";这句了呀
      

  2.   

    frmLogin.M_BaudRate = "4800";
    if (frmLogin.M_BaudRate != "1200" && frmLogin.M_BaudRate != "2400" ||frmLogin.M_BaudRate != "4800")
      {
      frmLogin.M_BaudRate = "4800"; //应转到这里
      this.trackBar1.Value = 2;
      this.lblBaudRate.Location = new System.Drawing.Point(276, 160);
      }
      else
      {
      frmLogin.M_BaudRate = "9600"; //实际到了这里
      }
      

  3.   

    前面赋值4800所以你if的条件为false,所以执行else...
      

  4.   

    前面已经frmLogin.M_BaudRate = "4800";
    所以在用&&连接判断时,始终为false,就执行frmLogin.M_BaudRate = "9600";