标签: logical-operators

我可以使用逻辑OR || 在PHP变量声明?

此代码有效:

$foo = getFoo();
if (!$foo) $foo = getBar();
if (!$foo) $foo = getJiggy();
if (!$foo) $foo = getWithIt();
Run Code Online (Sandbox Code Playgroud)

我以为我用逻辑运算符看到了它的简化:

$foo = (getFoo() || getBar() || getJiggy() || ...);
Run Code Online (Sandbox Code Playgroud)

我想,第一个真正的语句会获得通过,但相反,它只是设置$ FOO为boolean true,而不是返回值getFoo(),getBar()等等.

有没有像我想的那样简化?

php logical-operators

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

Python"if"语句被忽略

可能重复:
if/elif语句的多个条件

如果满足多个条件之一("或"),我在Python中触发循环循环.该脚本似乎跳过"if"语句并进入内部循环而不满足所需条件.

# Begin TestCase
# Main logic: execute RemoteController macro, if expected state == true, set 'Success', else: Fail
for macroname_n in range (32):
    handler("RemoteController", "SET", "[{0}_{1}_{2}]".format(testcase, macroname_n, platform), "")
    result = pbc_json(disk, testcase_area, testcase, platform, filename_n, coord_n)
    filename_n += 1
    coord_n += 1
    if macroname_n == 15 or 20:
        success_counter = 0
        for extra_loop in range(15):
            handler("RemoteController", "SET", "\"down 4\"", "")
            result = pbc_json(disk, testcase_area, testcase, platform, filename_n, coord_n)
            filename_n += 1
            if result >= 50: …
Run Code Online (Sandbox Code Playgroud)

python loops for-loop if-statement logical-operators

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

C++逻辑AND运算符

我试图使用逻辑AND运算符,但我得到一些意外的行为.

#include <iostream>

using namespace std;

int main() {
  unsigned flags = 0;
  cout << "flags = " << flags << endl;
  for(int i=0; i<3; ++i) {
    flags &= (1 << i);
    cout << "Anding with " << (1 << i) << endl;
    cout << "flags = " << flags << endl;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

实际产量:

flags = 0
Anding with 1
flags = 0
Anding with 2
flags = 0
Anding with 4
flags = 0
Run Code Online (Sandbox Code Playgroud)

预期产量:

flags …
Run Code Online (Sandbox Code Playgroud)

c++ operators bitwise-operators logical-operators

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

C中条件语句内的位运算符和逻辑运算符之间有什么区别?

网上有很多问题涉及按位和逻辑运算符之间的差异.希望我做了一个很好的搜索,当在条件语句中使用时,他们都没有专注于它们是否相同,也没有专门用于C语言.大多数人提到C++和C#,我不知道相同的答案是否也适用于C语言.

这是我编写的用于测试正在发生的事情的示例代码:

// Difference between logical && and bitwise & //

#include <stdio.h>

#define TRUE 123>45
#define FALSE 4>2342

void print_tt(int table[][4]);

int main(void) {

    int and_tt[2][4];   // AND truth table
    int or_tt[2][4];    // OR truth table

    // Create truth table for logical and bitwise AND operator all in one 2d array
    and_tt[0][0] = TRUE && TRUE ? 1 : 0;
    and_tt[0][1] = TRUE && FALSE ? 1 : 0;
    and_tt[0][2] = FALSE && TRUE ? 1 : 0;
    and_tt[0][3] …
Run Code Online (Sandbox Code Playgroud)

c bitwise-operators logical-operators conditional-statements

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

java复杂逻辑条件解析器

我有一组传入记录,需要在一组定义和存储的逻辑子句下进行评估。一个示例逻辑子句如下:

Acct1 != 'Y' AND Acct2 > 1004 AND Acct3 >= 96 AND Acct4 < 1004 AND Acct5 = 99 AND ((Acct6 <= 9090 OR Acct7 IN (A1,A2,A6) AND Acct1 NOT IN (A3,A4)) AND Formatted LIKE 'LINUX' AND Acct9 NOT LIKE 'WINDOWS' AND (Acct10 = 'N' AND NOT Acct11 = 'N') AND EditableField BETWEEN (10 AND 20) )
Run Code Online (Sandbox Code Playgroud)

我输入到该条款​​的数据如下:

map.put(Acct1,"Y")
map.put(Acct2,1010)
map.put(Acct3,99)
map.put(Acct4,1015)
map.put(Acct5,99)
map.put(Acct6,9090)
map.put(Acct7,"A3")
map.put(Formatted,"LINUX_INST")
map.put(Updated,"LINUX_TMP")
map.put(Acct10,"Y")
map.put(Acct11,"N")
map.put(EditableFIeld,25)
Run Code Online (Sandbox Code Playgroud)

我必须将填充到映射中的传入记录评估到上面定义的子句上,并根据评估结果打印 true 或 false。

子句条件和映射值也将被更改和执行。

我有以下条件子句需要评估:

!=
>
>= …
Run Code Online (Sandbox Code Playgroud)

java algorithm parsing recursive-descent logical-operators

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

具有逻辑OR的IF语句

if(1 == 2 || 4)
{
cout<<"True";
}
else
{
cout<<"False";
}
Run Code Online (Sandbox Code Playgroud)

这就是我如何阅读上述内容.如果1等于2或4,则打印为true.否则,打印错误.执行此操作时...打印为true.显然我在这里误解了一些东西.1不等于2或4.这不是假的吗?

c++ if-statement logical-operators

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

Postgresql NOT NULL AND &lt;&gt; '' vs NOT NULL OR &lt;&gt; ''

我已经阅读了很多关于NOT NULL 与 <>'' 之间区别

我找到的最好的解释是:

https://www.postgresql.org/message-id/AANLkTilEsUTIeUkZCX9Vc14kciFiuvFBRRE-yen4K_Zi@mail.gmail.com其中指出:

NULL 表示问题尚未回答,因此没有答案,一旦提供可能就有答案,因此您不能真正说答案为空。空意味着答案已经给出,答案是空的。

对于我正在处理的表,我试图过滤有效邮政编码的结果(邮政编码是此特定表中的 VARCHAR),我尝试了以下操作:

SELECT postcode FROM customer_table_1 
WHERE postcode IS NOT NULL OR postcode <> '';
Run Code Online (Sandbox Code Playgroud)

但是,这在我的结果中给出了一些空白邮政编码。打破这个...

SELECT postcode FROM customer_table_1 
WHERE postcode IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)

给出一些空白邮政编码,而

SELECT postcode FROM customer_table_1 
WHERE postcode <>'';
Run Code Online (Sandbox Code Playgroud)

只在结果中给出有效的邮政编码。因此,查询的 IS NOT NULL 部分没有做我认为的那样。

作为更复杂查询的一部分,我以前使用过:

SELECT postcode FROM customer_table_1 
WHERE postcode IS NOT NULL AND postcode <> '';
Run Code Online (Sandbox Code Playgroud)

并达到了预期的效果。不过我一直觉得应该是

SELECT postcode FROM customer_table_1 
WHERE postcode IS NOT NULL OR …
Run Code Online (Sandbox Code Playgroud)

postgresql null logical-operators comparison-operators

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

&&和&的优化行为

考虑

 bool Fun1()
{
 ...
}
bool Fun2()
{
}
Run Code Online (Sandbox Code Playgroud)

在我可以拥有的主要代码中的某个地方

if(Fun1() && Fun2()) //option-1
{
}
Run Code Online (Sandbox Code Playgroud)

要么

if(Fun1() & Fun2()) //option-2 
{
}
Run Code Online (Sandbox Code Playgroud)

在VS2012中似乎option-1没有确保在发生这两种功能时始终执行这两项功能option-2.具体来说,如果其中一个函数返回,false则不执行其他函数option-1.但是,整体代码要求对它们的正确行为进行评估,这是我能够实现的option-2.我想知道这种行为是否option-2可以从编译器改为编译器(也有优化级别)或由标准确保?

c++ optimization logical-operators visual-studio-2012

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

在 C++ 中使用嵌套 if 语句与逻辑运算符 &amp;&amp;

假设我有一个整数数组表示棋盘上的棋子;

int board[8][8];
Run Code Online (Sandbox Code Playgroud)

在我的国际象棋游戏中,我目前正在编写一个生成器函数,它将返回所有合法移动的整数向量

当然,我将使用if 语句

我现在需要检查棋盘上的某个元素对于棋盘上的一块

例如,如果我有一个棋子;

board[row][col] == 'p';
Run Code Online (Sandbox Code Playgroud)

我需要生成[row+1][col][row+2][col]并且在某些情况下,如果它可以攻击一块,那么列中也会发生变化。

但是如果一块位于 的任何边缘boardboard[row+1][col]将返回索引超出范围

出于这个原因,我需要一个额外的 if 语句。

我的问题是,我应该使用:

if (pieceisnotonedge && board[row+1][col] == 0)
Run Code Online (Sandbox Code Playgroud)

或者

if (pieceisnotonedge)
{
    if (board[row+1][col] == 0)
}
Run Code Online (Sandbox Code Playgroud)

对于第一个示例,如果pieceisnotonedge返回false,它还会检查下一个条件吗?因为如果是这样,那我就有麻烦了。

c++ algorithm logic if-statement logical-operators

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

逻辑 AND 运算符和嵌套 if 语句之间有什么区别?

我认为由于某种原因,当我使用逻辑 AND 而不是嵌套的 if 语句时,我的程序不起作用。我制作了一个俄罗斯方块克隆,它具有保持功能,当玩家按下 C 键时可以保持/存储一个块。我有一个布尔值,可以防止玩家无法控制地交换块。

出于某种原因,这有效:

if (bKey[5]) //When C key is pressed
        {
            if (!pieceHold) //boolean to prevent player from holding the C key and swapping blocks constantly/uncontrollably
            {
                if (!bPieceHeld) //check to see if player is not holding a block
                {
                    r++;
                    nHoldPiece = nCurrentPiece; //set empty hold piece into the current piece
                    nHoldRotation = nCurrentRotation; 
                    nCurrentPiece = nNextPiece; //set the current piece into the next piece
                    
                    nNextPiece = rng[r - 1];
                    nCurrentX = nFieldWidth / …
Run Code Online (Sandbox Code Playgroud)

c++ logical-operators conditional-statements

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