关于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始终评估这两个语句.谢谢!
如何使用逻辑运算符来确定某个位是否已设置,或者是唯一的位移位?
我发现这个问题使用了位移,但我认为我可以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)
当我查看调试器时:
resFlag
是object{int}
和,值是0x00000010
.
isFlag_Schema_Base_Object
是的0x02
只是简单的简化就有一些问题.我正在对具有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.
简单地用这样的表达式采取了哪些步骤?怎么做?在这种情况下,这个价值是如何得到的?
我确信这是一个非常简单的问题,但我无法弄清楚为什么这个断言失败了......
基本上如果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) 我不得不替换默认的下划线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代码
javascript templates boolean-logic underscore.js underscore.js-templating
我发现在groovy
(null<0) == true
我没有找到关于这种操作的文档,我不知道是有效的结果还是有问题.
谁能告诉我更多?
谢谢
我总是使用这样的命令:
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()
功能方面遇到同样的问题,因此通用解决方案的额外吹嘘权利.
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
是否有简化?
谢谢你的帮助?
所以我一直试图使用一个简单的布尔值来禁用/启用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的状态,启用或禁用!(我想)我真的无法弄清楚这里有什么问题.感谢您的时间.
为什么表达式:
-5 < -3 < -1
Run Code Online (Sandbox Code Playgroud)
在MATLAB中评估为0?每个单独的语句都评估为true,所以我很困惑为什么它的评估为false.
非常感谢.
boolean-logic ×10
c# ×2
java ×2
algebra ×1
boolean ×1
byte ×1
function ×1
groovy ×1
if-statement ×1
javascript ×1
logic ×1
math ×1
matlab ×1
php ×1
r ×1
swing ×1
templates ×1
theory ×1
truthtable ×1
which ×1