本帖最后由 toss3000 于 2011-05-16 09:13:51 编辑

解决方案 »

  1.   

    问题补充,其中的[[x]]、[[y]]等要转换为map中对应x、y的值,比如4、5
      

  2.   

    楼主,这东西比较复杂。
    if(([[x]]-[[y]])>0,500,400)
    对于检测这个,我一上来想到用正则表达式。如果仅如这样,用也可以。可是问题是,if里面的两个逗号隔开的三个表达式,也可以是很复杂的,并且也可以嵌套if表达式。如果是这样的话,用正则表达式貌似较难定位。
    建议你先去看看用栈如何实现四则运算加括号的计算,比如:(1+2)*3-4/5。只不过你这里多了一种运符if(,,)。但是原理还是用栈进行计算。
      

  3.   

    看上去类似于3目运算符?:
    ((x-y)>0?500:400)+x/z+((y-z+d)>0?200:100)+y