程序代码中有个判断,如下: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"; //实际到了这里
}请问为什么会是这样?谢谢!
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"; //实际到了这里
}请问为什么会是这样?谢谢!
你用&&表示要三个条件全部等true成立才行,由于frmLogin.M_BaudRate = "4800";所以frmLogin.M_BaudRate != "4800"这个条件等于false,所以会执行frmLogin.M_BaudRate = "9600";这句了呀
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"; //实际到了这里
}
所以在用&&连接判断时,始终为false,就执行frmLogin.M_BaudRate = "9600";