标签: logical-operators

语法错误意外T_BOOLEAN_OR

我很确定它可能(或)导致它可能是太多了.

$filechk1 = "/temp/files/" . $data[0] . ".doc";
$filechk2 = "/temp/files/" . $data[1] . ".doc";
$dirchk1 = "/temp/files/" . $batchid . "/" .$data[0] . ".doc";
$dirchk2 = "/temp/files/" . $batchid . "/" . $data[1] . ".doc";

if(is_file($filechk1) && (is_file($filechk2))) || (is_file($dirchk1) && (is_file($dirchk2))){
    ...
}
Run Code Online (Sandbox Code Playgroud)

php syntax-error logical-operators

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

PHP - 使用变量作为运算符

我试图得到这个:

if($a[2] > $b[2] && $c[2] < 3) echo "bingo";
Run Code Online (Sandbox Code Playgroud)

但是因为从数据库中检索条件,我需要将整个条件放入变量中,然后以某种方式找到将变量更改回条件的方法.我认为这将是这条路:

$condition = "$a[2] > $b[2] && $c[2] < 3";
$evaledCondition = eval("$condition;");
if($evaledCondition) echo "bingo";
Run Code Online (Sandbox Code Playgroud)

显然它没有用.我错过了什么吗?

php logical-operators

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

我在javascript中正确使用逻辑运算符OR(||)吗?

if ((typed_edge!='Either') || (typed_edge!='Walkable')){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
    }
Run Code Online (Sandbox Code Playgroud)

如果typed_edge具有值Either,则显示警报("YES").

是不是应该不显示?

我想要的是当typed_edge具有值"Either"或"Walkable"时,不显示警报.但似乎并非如此!

javascript logical-operators operator-keyword

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

有什么方法可以跳过使用&& in for condition语句?

我的书中有一个练习,要求我写一个等效于:

for(i=0;(i<4) && (i<5);i++)
Run Code Online (Sandbox Code Playgroud)

但没有使用&&||运营商.

我提出了这样的解决方案:

for (i=0;;i++)
        if((i<4))
            if((i<5))
                printf("Works!!!\n");
            else
                break;
        else
            break;
Run Code Online (Sandbox Code Playgroud)

有用.由于我是C的初学者,我想知道是否有更好的解决方案.

提前致谢.

c logical-operators

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

运营商|| 不能应用于bool和int类型的操作数

我刚刚遇到一个奇怪的问题,这让我想知道为什么突然发生这种类型的错误,例如看看这段代码:

    if(age == 0 || age == 47 || age = 99)
    {
        name = "Those are lucky numbers!";
    }
    else
    {
        name = "Try again...";
    }
Run Code Online (Sandbox Code Playgroud)

错误是:错误CS0019:运算符'||' 不能应用于'bool'和'int'类型的操作数.

什么......?呵呵......我的意思是类型'bool'和'int'是我们想要用于这种操作的最常见的类型.他们为什么不工作?

此外,我确信我之前已经完成了数千次,我不明白为什么今天它会发生......或者我可能用Ruby语言做到了这一点.我仍然真的有C#以前的感受.

有人有合理的解释吗?我今天想念的东西?:d

c# logical-operators

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

C中的逻辑运算符与实际逻辑运算有何不同?

我有以下代码片段,并且基于我对逻辑运算符如何工作的了解,输出有点混淆.据我所知(基于电子学中的真值表),

  1. 对于逻辑AND,TRUETRUE给出TRUE真值表给出的值和所有其他组合FALSE.
  2. 对于逻辑OR,只有FALSEFALSE给出的值FALSE.虽然真值表的所有其他组合给出了TRUE.

基于这些知识,这个第一个代码片段 -

void main( )
{
int i = -1, j = 1, k ,l ;
k = i && j ;
l = i || j ;
printf ( "%d %d\n", i, j ) ;
printf("%d %d", k,l);
}
Run Code Online (Sandbox Code Playgroud)

给出输出 -

-1 1
1 1
Run Code Online (Sandbox Code Playgroud)

我在这里很困惑,因为根据逻辑AND和OR的真值表,k的值应该是-1.这来自以下事实的值i-1(这是FALSE)并且j1(这是 …

c logical-operators

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

使用|| LinQ的运营商

我有一个小例子来使用|| 运营商Where()但可能出现问题:

var list = new List<string>
{
   "One",
   "Two",
   "Three"
};

string s = "One";
var numbers = list.Where(x => x == s || !string.IsNullOrEmpty(x));

foreach(var number in numbers)
{
   Console.WriteLine(number);

   // output:
   // One
   // Two
   // Three
}

s = null;    
numbers = list.Where(x => x == s || !string.IsNullOrEmpty(x));

foreach(var number in numbers)
{
   Console.WriteLine(number);

   // output:
   // One
   // Two
   // Three
}
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,为什么!string.IsNullOrEmpty(x)在我们x == s真的时候仍然检查?

我明白了:

if (A …
Run Code Online (Sandbox Code Playgroud)

c# linq logical-operators

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

为什么语句"m = ++ i ||"中的"k"不递增 ++ j && ++ k"?

第一部分:

i=j=k=1;
m = ++i && ++j || ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
Run Code Online (Sandbox Code Playgroud)

输出:2,2,1,1

第一部分容易理解,这里++i && ++j先执行,这是真的(和i和j的增量值),所以不需要检查OR运算的下一部分(不需要增量值为k).

第二部分:

i=j=k=1;
m = ++i || ++j && ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
Run Code Online (Sandbox Code Playgroud)

输出:2,1,1,1

第二部分容易理解,这里++i || ++j先执行,其中++i为真(并且增加值i,因为OR opreation所以不需要增加值j).接下来执行AND操作这里应该是增量值k=2(但仍然是k print 1的值).

亲爱的利他主义者,请解释我在第二部分发生的事情.

c c++ expression logical-operators

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

如何根据布尔值反转三元条件表达式?

我正在寻找一种基于布尔参数反转条件表达式的方法.当然,这可以通过以下方式完成:

public int do(bool b)
{  
    if (b)
       return this.a ? 1 : 0;
    else 
       return this.a ? 0 : 1;
}
Run Code Online (Sandbox Code Playgroud)

但是,使整个功能成为一个单行是有帮助的.所以,在逻辑表达式而言,我正在寻找一个操作∘结合ab的方式,

a∘b = a

a∘(¬b)=¬a

问题:是否存在这样的逻辑运算(或运算组合)?

c# logical-operators

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

为什么“或”条件中的语句顺序很重要?

我正在解决一个我在原地反转单词的问题。我注意到,根据我的or运算符前后的语句顺序,该代码将无法正常工作。

如果我改变

if i == len(s1) or s1[i] == ' ':
Run Code Online (Sandbox Code Playgroud)

if s1[i] == ' ' or i == len(s1):
Run Code Online (Sandbox Code Playgroud)

我得到错误

Traceback (most recent call last):
  File "reverse_words_in_place.py", line 58, in <module>
    reverse_words(s1)
  File "reverse_words_in_place.py", line 6, in reverse_words
    if s1[i] == ' ' or i == len(s1):
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
if i == len(s1) or s1[i] == ' ':
Run Code Online (Sandbox Code Playgroud)

此代码的输出是

steal pound cake
Run Code Online (Sandbox Code Playgroud)

只要

if i == len(s1) or s1[i] == ' ': …
Run Code Online (Sandbox Code Playgroud)

python logical-operators

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