C#条件存在问题
本文关键字:问题 存在 条件 | 更新日期: 2023-09-27 17:58:32
嗨,我有以下代码:
medianListTester.cfyPE = 0;
if (medianListTester.cfyPE != 0 || testStock.getCEPS() != 0)
{
medianCYPE_price = medianListTester.cfyPE * testStock.getCEPS();
counter++;
}
else
//do something else
但它似乎没有"做其他事情",仍然在条件中激发代码。我是不是做错了什么?为什么它不运行if语句中的代码?
如果testStock.getCEPS()不为0,则不会命中else块。根据你的需要和期望,你可能需要使用&;而不是||?
medianListTester.cfyPE设置为0,因此if语句中的第一个子句的计算结果为false。什么是TestStock.getCEPS()?如果这是非零的,那么它将计算为true,并且整个If语句为true。
我真的不知道你在问什么,但你调用了getCEPS()两次,也许这返回了两个不同的值,也许这会给你带来麻烦。
试试这个:
medianListTester.cfyPE = 0;
var ceps = testStock.getCEPS();
if (medianListTester.cfyPE != 0 || ceps != 0)
{
medianCYPE_price = medianListTester.cfyPE * ceps;
counter++;
}
else
//do something else
听起来testStock.getCEPS()
返回的不是0。这就解释了为什么它从未命中do something else
。你检查过这是什么退货了吗?
调用testStock.getCEPS()的值是多少?如果不是0,它仍然会进入那个代码块。此外,我不知道medianListTester引用的对象的详细信息,但可能有一个getter/setter工作不正常。
解决此问题的最佳方法是在赋值之后但在if语句之前打印或以某种方式查看medianListTester.cfyPE和testStock.getCEPS()的值。