消息关闭
    暂无新消息!

多条件联合查询,语句不会写

问题作者 : 老菜2017-06-30发布

假设条件分别为c1,c2,c3,c4,c5 ,变量分别为v1,v2,v3,v4,v5
当用户选好条件后点击search按钮
现在要按照comboBox里的条件符进行判断:
if((c1 >= v1) && (c2 < v2)  &&  (c3 <= v3)  &&  (c4 >= v4) && (c5==v5) )
{
      //do something......
}
怎么把comboBox里的条件符提取出来放到if语句里?

3个回答

︿ 3


bool Check(const QString &symbol, int val1, int val2)
{
    if (symbol == ">")
   {
       return val1 > val2;
   }
   else if (symbol == "<")
   {
       return val1 < val2;
   }
   ....
}


bool b1 = Check(ui->combox1->currentText(), symbol1, ui->spinbox1->value(), ui->spinbox2->value());
bool b2 = ..
if (b1 && b2 && b3 && b4 && b5)
{
    //do something......
}
︿ 1
方法很多,楼上的方法可以工作。很直观的拍脑袋想出来的。
还有可以设计成 抽象类 加 子类多态的模式,代码量 稍大,但是很易于扩展
当然 如果按照你的想法,就需要 加入一门嵌入式语言。python, javascript, lua都行。