相关疑难解决方法(0)

为什么我们通常使用`||`而不是`|`,有什么区别?

我只是想知道为什么我们通常||在两个布尔值之间使用逻辑OR 而不是按位OR |,尽管它们都运行良好.

我的意思是,看看以下内容:

if(true  | true)  // pass
if(true  | false) // pass
if(false | true)  // pass
if(false | false) // no pass
Run Code Online (Sandbox Code Playgroud)
if(true  || true)  // pass
if(true  || false) // pass
if(false || true)  // pass
if(false || false) // no pass
Run Code Online (Sandbox Code Playgroud)

我们可以用|而不是||吗?同样的事情&&&.

java bitwise-operators

215
推荐指数
10
解决办法
9万
查看次数

在Entity Framework中使用OR条件进行动态查询

我正在创建一个创建一个搜索数据库的应用程序,并允许用户动态添加任何标准(大约50种可能),非常类似于以下SO问题:使用实体框架创建动态查询.我目前正在进行搜索,检查每个条件,如果它不是空白,则将其添加到查询中.

C#

var query = Db.Names.AsQueryable();
  if (!string.IsNullOrWhiteSpace(first))
      query = query.Where(q => q.first.Contains(first));
  if (!string.IsNullOrWhiteSpace(last))
      query = query.Where(q => q.last.Contains(last));
  //.. around 50 additional criteria
  return query.ToList();
Run Code Online (Sandbox Code Playgroud)

此代码在sql server中生成类似于以下内容的东西(为了便于理解,我进行了简化)

SQL

SELECT
    [Id],
    [FirstName],
    [LastName],
    ...etc
FROM [dbo].[Names]
WHERE [FirstName] LIKE '%first%'
  AND [LastName] LIKE '%last%'
Run Code Online (Sandbox Code Playgroud)

我现在尝试添加一种方法,通过实体框架使用C#生成以下SQL,但使用OR而不是AND,同时仍然保持动态添加条件的能力.

SQL

SELECT
    [Id],
    [FirstName],
    [LastName],
    ...etc
  FROM [dbo].[Names]
WHERE [FirstName] LIKE '%first%'
  OR [LastName] LIKE '%last%' <-- NOTICE THE "OR"
Run Code Online (Sandbox Code Playgroud)

通常,条件不会大于查询的两个或三个项目,但将它们组合成一个巨大的查询不是一种选择.我尝试过concat,union和intersect,他们只是复制查询并将它们与UNION连接起来.

是否有一种简单而干净的方法可以使用实体框架向动态生成的查询添加"OR"条件?

使用我的解决方案进行编辑 - 2015年9月29日

自发布以来,我注意到这已经得到了一点关注,所以我决定发布我的解决方案

// Make …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server linq-to-entities entity-framework

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

Java是否在知道布尔结果后评估剩余条件?

也就是说,如果我有一个评估多个条件的语句,比如说'或'这样的语句.

if(isVeryLikely() || isSomewhatLikely() || isHardlyLikely())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下isVeryLikely(),在运行时返回true,将isSomewhatLikely()isHardlyLikely()执行?如果不是方法而是静态布尔值呢?

java

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

C#中&和&&运算符之间的区别是什么

我试图理解C#中&和&&运算符之间的区别.我在互联网上搜索没有太大的成功.有人可以用一个例子解释一下吗?

c#

28
推荐指数
5
解决办法
4万
查看次数

比较三个变量的数学方法

在Java中,我被分配以比较两个3个正双变量,而忽略它们的顺序。我做了以下事情:

if ((a1 == a2 && b1 == b2 && c1 == c2) ||
    (a1 == a2 && b1 == c2 && c1 == b2) ||
    (a1 == b2 && b1 == a2 && c1 == c2) ||
    (a1 == b2 && b1 == c2 && c1 == a2) ||
    (a1 == c2 && b1 == a2 && c1 == b2) ||
    (a1 == c2 && b1 == b2 && c1 == a2))
    // if true
Run Code Online (Sandbox Code Playgroud)

我从老师那里听说,有一种数学方法可以比较这对3个数字。

到目前为止,我试图将它们的加,减,乘幂之和与2进行比较,但是我总是发现这样的情况,即该对是不同的,并且陈述是正确的。

有任何想法吗?

编辑: …

java math compare

13
推荐指数
1
解决办法
247
查看次数

使用改变条件内的东西的函数是不好的做法,使条件顺序依赖?

var a = 1;

function myFunction() {
    ++a;
    return true;
}

// Alert pops up.
if (myFunction() && a === 2) {
    alert("Hello, world!");
}

// Alert does not pop up.
if (a === 3 && myFunction()) {
    alert("Hello, universe!");
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/3oda22e4/6/

myFunction递增一个变量并返回一些东西.如果我在if包含它递增的变量的语句中使用这样的函数,则条件将依赖于顺序.

这样做有好有坏,为什么?

javascript variables conditional if-statement function

10
推荐指数
4
解决办法
355
查看次数

|之间的区别 和|| ,或者&和&&

这些是在Dev-cpp C++ 5.4.2上编写的两个简单的C++示例:

float a, b, c;

if (a | b  & a | c)
   printf("x = %.2f\tF = %.0f\n", x, F);
else
   printf("x = %.2f\tF = %.2f\n", x, F);
Run Code Online (Sandbox Code Playgroud)

而这段代码:

float a, b, c;

if (a || b  && a || c)
   printf("x = %.2f\tF = %.0f\n", x, F);
else
   printf("x = %.2f\tF = %.2f\n", x, F);
Run Code Online (Sandbox Code Playgroud)

有谁能告诉我之间的差异||> |&> &&.第二个代码有效,但首先没有.编译器给出了一条错误消息:

[错误]类型'float'和'float'到二进制'运算符&'的操作数无效.

c++ bitwise-operators

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

为什么不评估&&运算符的右侧?

小疑问.为什么输出以下代码1?为什么不3呢?

int i = 0;
boolean t = true, f = false, b;
b = (t && ((i++) == 0));
b = (f && ((i+=2) > 0));
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

java

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

C 程序输出复杂性

你能解释一下为什么下面的程序会给出这样的输出吗?

#include<stdio.h>

int main()
{
    int i=-3,j=1,k=0;
    int m;
    m=++i || ++j && ++k;
    printf("i= %d\nj=%d\nk=%d\nm=%d", i,j,k,m);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

i= -2
j=1
k=0
m=1

c

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

如果条件x> 3 ||,则缩短 y> 3 || z> 3

有没有办法做这种情况:

if ( x > 3 || y > 3 || z > 3 ) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我在考虑一些按位操作但却找不到任何东西.

我在Google上搜索过,但很难找到与这类基本问题相关的内容.谢谢!

编辑 我在一般编程中思考.根据特定的语言会有所不同吗?比如C/C++,Java ......

optimization

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