标签: boolean-logic

我如何让PHP避免懒惰评估?

关于PHP评估布尔表达式的方式,我有一个有趣的问题.例如,当你有

$expression = $expression1 and $expression2;
Run Code Online (Sandbox Code Playgroud)

要么

if ($expression1 and $expression2)
Run Code Online (Sandbox Code Playgroud)

PHP首先检查是否$expression1计算结果true.如果不是这种情况,则$expression2只需跳过以避免不必要的计算.在我写的剧本中,我有:

if ($validator->valid("title") and $validator->valid("text"))
Run Code Online (Sandbox Code Playgroud)

我需要$validator->valid("text")评估第二个语句(),即使第一个语句的计算结果为false.我想问一下,是否有一些简单的方法可以强制PHP始终评估这两个语句.谢谢!

php boolean-logic function lazy-evaluation

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

如何使用AND检查C#中是否存在某个位?

如何使用逻辑运算符来确定某个位是否已设置,或者是唯一的位移位?

我发现这个问题使用了位移,但我认为我可以AND超出我的价值.

对于某些上下文,我正在从Active Directory中读取值并尝试确定它是否为架构基础对象.我认为我的问题是语法问题,但我不确定如何纠正它.

foreach (DirectoryEntry schemaObjectToTest in objSchema.Children)
        {
            var resFlag = schemaObjectToTest.Properties["systemFlags"].Value;
            //if bit 10 is set then can't be made confidential.
            if (resFlag != null)
            {
                byte original = Convert.ToByte( resFlag );
                byte isFlag_Schema_Base_Object = Convert.ToByte( 2);
                var result = original & isFlag_Schema_Base_Object;
                if ((result) > 0)
                {
                       //A non zero result indicates that the bit was found
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

当我查看调试器时: resFlagobject{int}和,值是0x00000010. isFlag_Schema_Base_Object是的0x02

c# byte boolean-logic active-directory

2
推荐指数
1
解决办法
281
查看次数

查找布尔表达式的简化乘积和

只是简单的简化就有一些问题.我正在对具有3个输入A,B和C的多数解码器进行简化.如果2或所有3个输入假定为1,则其输出Y假设为1.否则Y假定为0.选择正确的切换功能Y = f(A,B,C).

因此,在完成真值表之后,我发现Canonical Sum of Products来了

NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C
Run Code Online (Sandbox Code Playgroud)

这简化,显然是Y = A*B + B*C + A*C.

简单地用这样的表达式采取了哪些步骤?怎么做?在这种情况下,这个价值是如何得到的?

theory math boolean-logic algebra truthtable

2
推荐指数
1
解决办法
2万
查看次数

c#理解bool表达式

我确信这是一个非常简单的问题,但我无法弄清楚为什么这个断言失败了......

基本上如果IsApple为假或IsBannana是假的断言应该失败,但是如果其中一个是真的断言应该通过,那么有人可以解释为什么这个断言失败了吗?

        [Test]
        public void IsApplesOrBannans()
        {
            bool IsApple = true;
            bool IsBannana = false;

            if (!IsApple || !IsBannana)
                Assert.Fail();

            Assert.Pass();
        }
Run Code Online (Sandbox Code Playgroud)

c# boolean-logic

2
推荐指数
1
解决办法
297
查看次数

布尔检查下划线模板

我不得不替换默认的下划线teplating delimiters/Interpolate正则表达式以兼容asp.net webforms.从网站我选择了胡须,如语法

_.templateSettings = {
  interpolate : /\{\{(.+?)\}\}/g
};
Run Code Online (Sandbox Code Playgroud)

试过这个

_.template("{{if(loggedIn)Welcome {{name}}}}",{name:"James",completed:true});

但似乎这不是使用模板系统检查布尔表达式的方式(因为发生错误).但是从文档来看似乎是可能的

以及使用<%...%>执行任意JavaScript代码

  • 那么如何使用上面提到的插值执行任意js代码

javascript templates boolean-logic underscore.js underscore.js-templating

2
推荐指数
1
解决办法
3413
查看次数

Groovy null小于零?

我发现在groovy

(null<0) == true

我没有找到关于这种操作的文档,我不知道是有效的结果还是有问题.

谁能告诉我更多?

谢谢

groovy boolean-logic

2
推荐指数
1
解决办法
2468
查看次数

在R中使用()和ifelse()函数组合逻辑语句

我总是使用这样的命令:

which(foo$bar == 'A' | foo$bar == 'B' | foo$bar == 'C')
Run Code Online (Sandbox Code Playgroud)

由于它们都与同一个变量相关,我希望能够清理我的代码并执行以下操作:

which(foo$bar == 'A|B|C')  # such syntax works in grep, why not here?
# or...
which(foo$bar == c('A', 'B', 'C'))
Run Code Online (Sandbox Code Playgroud)

但这一切都不起作用!我很确定必须有一个简单的解决方案,我找不到它.我在ifelse()功能方面遇到同样的问题,因此通用解决方案的额外吹嘘权利.

boolean-logic r which

2
推荐指数
1
解决办法
7920
查看次数

如果条件布尔表达式,则简化

if-condition我的代码中有这个:

if (a||a&&!b){
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)

从我的那些初始值junit test:

boolean a=true, b = true;
Run Code Online (Sandbox Code Playgroud)

我后来认识到这个陈述可以简化为:

if (a&&b)
Run Code Online (Sandbox Code Playgroud)

变绿了: Assert.assertTrue(a||a&&!b == a&&b);

我现在的问题.有没有方法,工具,功能,图书馆等来检查boolean expression是否有简化?

谢谢你的帮助?

java boolean-logic if-statement boolean-expression

2
推荐指数
1
解决办法
3018
查看次数

在JTabbedPane中简单禁用JPanel

所以我一直试图使用一个简单的布尔值来禁用/启用jTabbedPane(在Netbeans上)中的jPanel,并且boolean总是卡在false上.单击按钮可触发jTabbedPane中jPanel的禁用/启用.以下是我的代码的摘录:

package programming.club;

/**
 *
 * @author RandomGuy
 */

public class GranadaProgrammingClubUI extends javax.swing.JFrame {

public static boolean allowNavigation = true;



/**
 * Creates new form ProgrammingClubUI
 */
public ProgrammingClubUI() {
    initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:

        if (allowNavigation == false) {
             jTabbedPane1.setEnabledAt(0, true);
            allowNavigation = true;
         }
        if (allowNavigation == true) {
            jTabbedPane1.setEnabledAt(0, false);
            allowNavigation = false;
         }

         System.out.println(allowNavigation);

    }
Run Code Online (Sandbox Code Playgroud)

我把System.out.println(allowNavigation); 只是为了检查allowNavigation的值是什么,每次单击按钮时,值都保持为false,但它应该是切换,并且更改jPanel的状态,启用或禁用!(我想)我真的无法弄清楚这里有什么问题.感谢您的时间.

java swing boolean-logic boolean

2
推荐指数
1
解决办法
288
查看次数

为什么这个表达式评估为0?

为什么表达式:

-5 < -3 < -1
Run Code Online (Sandbox Code Playgroud)

在MATLAB中评估为0?每个单独的语句都评估为true,所以我很困惑为什么它的评估为false.

非常感谢.

matlab logic boolean-logic

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