标签: boolean-expression

如何在if条件下将自定义异常对象评估为false?

我只是想知道是否有任何方法使我的对象返回false如果放在if语句中.原因是我正在制作一个自定义异常类.我希望能够做一些事情

class Dog{

   public function lookAround()
   {
        if(seeDog())
        {
            return bark;
        }
        else
        {
            return sit;
        }
   }

   public function seeDog()
   {
        if(object == Dog)
        {
             return "husky";
        } 
        else
        {
             return Dog_Exception(no_see);
        }
   }
} 
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常愚蠢的例子.但是,重点是,当这个对象成立时,if(seeDog())测试将评估true字符串"husky"和Dog_Exception对象.如果可能的话,我想Dog_Exception评估false,如果处于一个if条件.这样我就不必使用类似的构造等if(typeof(seeDog()) == Dog_Exception).我怀疑这是可能的,但任何帮助都会很棒.谢谢!

php object boolean-expression

0
推荐指数
1
解决办法
351
查看次数

我的Perl脚本中的if-elsif-else阻塞有什么问题?

我正在尝试为嵌套的if语句编写一个条件,但是没有找到使用if语句的好例子.以下elsif条件失败,并允许嵌套在其下的代码在以下情况下触发$status == 6:

if ($dt1 > $dt2 ) {do one thing}
elsif(($status != 3) || ($status != 6)) { do something else}
else {do something completely different}
Run Code Online (Sandbox Code Playgroud)

我想避免为每个条件设置另一个elsif,因为实际驻留在这里的代码是几行.

perl if-statement boolean-expression

0
推荐指数
2
解决办法
266
查看次数

Python布尔值:另一个列表或字典中列表的任何值

我刚刚发现自己编写了这行代码,我不太喜欢这样做:

if ('upload' in request.POST) or ('delete' in request.POST):
Run Code Online (Sandbox Code Playgroud)

我已经考虑过列表理解,它看起来像这样:

if [value for value in ['upload','delete'] if value in request.POST]:
Run Code Online (Sandbox Code Playgroud)

哪个不是更好.我非常简单的问题是:这可以简化吗?或者这只是想要太聪明?

python boolean-expression

0
推荐指数
1
解决办法
214
查看次数

布尔运算的<=(小于或等于)运算符的含义是什么?

我看到了一段像这样的java代码:

int y = 100;
boolean x = y <= 0;
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

<=由于这种使用方式对我来说很奇怪,任何人都可以在<=这里解释一下,我该如何使用它?

java boolean-expression

0
推荐指数
2
解决办法
153
查看次数

布尔AND不评估表达式的两侧

 class Program
 {
  static void Main(string[] args)
  {
   bool success = true;
   int[] array = { 10, 15, 20 };
   foreach (var i in array)
    success = success && SynchronizeAccount(i);
  }

  static bool SynchronizeAccount(int i)
  {
   Console.WriteLine(i);
   return false;
  }
 }
Run Code Online (Sandbox Code Playgroud)

输出为10.在第一步之后,'success'变为false并且永远不会为true,因此c#在第一次迭代后停止循环执行.但我需要SynchronizeAccount的SIDE效果,而不是'成功'值.

c# side-effects boolean-expression

0
推荐指数
2
解决办法
1366
查看次数

当RSpec测试时,Ruby的&&逻辑表现不一致

我有一个方法,包括(在后续行中)以下代码:

candidate_lines.each do |line| 
  return line if priority_1?(line) && line.marked_by?(self)
end
Run Code Online (Sandbox Code Playgroud)

据我所知,其中的方法是无关紧要的.是什么让我感到困惑,我有一个测试应该只是通过我给出的规范跳过该方法的一部分:

it "without any priority 1 lines, returns all priority 2 lines marked by itself" do
  line1 = double :line, marked_by?: true
  line2 = double :line, marked_by?: true
  allow(joshua).to receive(:priority_1?).and_return(:false)
  expect(joshua).to receive(:candidate_lines).and_return([line1, line2])
  expect(joshua.tiebreak_lines).to eq [line1, line2]
end
Run Code Online (Sandbox Code Playgroud)

然而,当我运行测试时,返回语句将被触发.我已经在'return line ...'行之前使用puts语句手动测试了它,结果是,'priority_1?(line)'返回false,由于某种原因'priority_1?(line)&& line. marked_by?(self)'正在评估为true.

这里发生了什么事?

ruby rspec boolean-expression

0
推荐指数
1
解决办法
49
查看次数

Python:为什么"2 in [1,2,3] == True"返回False?

假设我在Shell中输入,然后我得到True.

>>>ar=[2,4,6,8]
>>>2 in ar
True
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用它时,它不起作用

>>>if 2 in ar==True:
       print("YES")

>>> 
>>> 
Run Code Online (Sandbox Code Playgroud)

它不起作用!if条件为False.我该怎么做才能检查带有循环的列表中是否有一个术语?例如:我有一些随机列表,我必须打印列表中的所有偶数?

python boolean-expression

0
推荐指数
1
解决办法
84
查看次数

Python布尔"在"和"或"语句一起

假设我想检查给定元组中是否存在两个给定元素中的任何一个,例如:

if foo in my_tuple or bar in my_tuple:
Run Code Online (Sandbox Code Playgroud)

是否有更多的pythonic方式来构建这个表达式?具体来说,如果我想检查几个元素,那么这些语句会变得烦人.我试过了

if (foo or bar) in my_tuple:
Run Code Online (Sandbox Code Playgroud)

但这会选择foo over bar并仅检查foo.将不胜感激.

python boolean boolean-expression python-2.7

0
推荐指数
1
解决办法
78
查看次数

布尔表达式的评估顺序是什么

我一直在寻找一个解释布尔表达式的顺序,但找不到一个.

看看这个声明:

if (locClsTanken.PlaceID == -1 && locRwF.PlaceID > -1 || locClsTanken.DagPrijs == 0)
Run Code Online (Sandbox Code Playgroud)

这是如何评估的.
会是这样的:

if ((locClsTanken.PlaceID == -1 && locRwF.PlaceID > -1) || locClsTanken.DagPrijs == 0)
Run Code Online (Sandbox Code Playgroud)

或者像这样:

if (locClsTanken.PlaceID == -1 && (locRwF.PlaceID > -1 || locClsTanken.DagPrijs == 0))
Run Code Online (Sandbox Code Playgroud)

是否有一些关于此的文档我不知道正确的搜索词,因为英语不是我的语言.

我知道我可以测试它,但我想找到关于这个的文档,所以我可以完全理解它

c# boolean-expression

0
推荐指数
1
解决办法
238
查看次数

具有两个关系运算符的单个变量如何在内部工作

如果需要组合布尔表达式,我们通常使用逻辑运算符.如果不使用逻辑运算符,我想知道表达式.

int x=101;
if(90<=x<=100)
  cout<<'A';  
Run Code Online (Sandbox Code Playgroud)

此代码仍在控制台上打印"A".你能帮我理解一下这个布尔表达式的评估方式和顺序.

c++ boolean-expression logical-operators relational-operators

0
推荐指数
1
解决办法
49
查看次数