标签: operator-precedence

此Console.WriteLine语句中的错误在哪里?

如果您运行以下代码,您将获得输出:

答案是:<br>
<br>

class Program
{
    static void Main(string[] args)
    {
        HtmlElement element = new HtmlElement();
        element.InnerHtml = "<br>";

        string val = element.InnerHtml != null ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName;
        Console.WriteLine("The answer is: "+val); // correct
        Console.WriteLine("The answer is: " +element.InnerHtml !=null ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName); // bug?
        Console.ReadLine();

    }
}
public class HtmlElement
{
    public string InnerHtml { get; set; }
    public string InnerText { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c# operator-precedence

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

C中的后增量和前增量

我对这两个C语句有疑问:

  1. x = y++;

  2. t = *ptr++;

使用语句1,y的初始值被复制到x然后y递增.

使用语句2,我们查看*ptr指向的值,将其放入变量t,然后稍后增加ptr.

对于语句1,后缀增量运算符的优先级高于赋值运算符.所以不应该首先递增y,然后将x赋值给y的递增值?

在这些情况下,我不理解运算符优先级.

c operator-precedence pre-increment post-increment

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

在SQL中,如何将一个匹配列优先于另一个?

我尝试了一些东西,但我画了一个空白.这是我的查询:

SELECT * 
    FROM Companies 
WHERE 
    Symbol LIKE 'ZY%' OR 
    Name LIKE '%ZY%' 
ORDER BY Symbol ASC
LIMIT 2;
Run Code Online (Sandbox Code Playgroud)

基本上我想要"ZY"匹配(ZNGA,Zynga Inc)才能匹配(HALO,Halozyme Therapeuti ......).

显然,订单的原因是这部分查询:

ORDER BY Symbol
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?

sql where match operator-precedence

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

表达式中的括号是否先评估?

在C中,操作数的评估顺序与运算符优先级和关联性无关.

假设我在C中有一个表达式expr1 * expr2 + (expr3 + expr4) (中间没有序列点).

当评估此表达式时,则:

  1. 由于括号,是否会在expr1和expr2之前计算子表达式expr3和expr4?

  2. 或者括号是否确保括号内的运算符在括号外的运算符之前进行求值?

括号是否确保操作数或运算符的评估顺序?

c operator-precedence associativity

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

解决不同数学运算符的优先级

deposit = sellingPrice == 0 ? 0 : (sellingPrice - interest)

上面的伪代码是什么,我在三元运算符上生锈,运算符优先级像这样复杂.

java math operator-precedence

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

C编程:运算符优先级之间的混淆

我对运算符的优先级感到困惑,并想知道如何评估这个语句.

# include <stdio.h>

int main()
{
  int k=35;  
  printf("%d %d %d",k==35,k=50,k>40);  
  return 0;  
}
Run Code Online (Sandbox Code Playgroud)

这里k最初的价值是35,当我在测试kprintf我认为:

  1. k>40 应该检查哪个应该导致0
  2. k==35 应该检查,哪个应该导致1
  3. 最后应该分配50 k,哪个应该输出50

所以最终输出应该是1 50 0,但输出是0 50 1.

c operators operator-precedence

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

为什么这个"where"子句不限制sql结果

我试图将表中的结果限制为日期与我的数据不重叠的记录.正如您在下面的屏幕截图中看到的,我正在尝试添加一个子句来过滤掉等于"end"列的记录.请参阅查询中的最后一行.

我无法弄清楚为什么结果仍然显示截图中的记录.有人可以帮我解释一下吗?这可能是一种语法问题?

谢谢!

SQL Where子句不过滤

mysql sql select operator-precedence

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

为什么表达式*(b ++)不首先评估b ++?

我试图理解括号如何影响表达式中的优先级:

int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
auto b = arr;
std::cout << *(++b) << std::endl;

// output : 1
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我得到了预期的输出,但如果我将其更改为:

std::cout << *(b++) << std::endl;
// output 0 
Run Code Online (Sandbox Code Playgroud)

我得到0了输出.由于括号我b++将首先进行评估,然后进行解引用.看来我错了,那么我完全去除括号和测试与*++b*b++并获得意味着括号并不影响这种表达的优先级相同results.Does?为什么这两个表达式的结果是等价的:

*(b + 1) 
*(++b) 
Run Code Online (Sandbox Code Playgroud)

但事实并非如此*(b++)

c++ pointers operators operator-precedence

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

评估顺序>>和[++]

我对C++中的操作的优先级有疑问.我在http://en.cppreference.com/w/cpp/language/operator_precedence中搜索优先级,我读到的这个问题或多或少与C中的数组增量差异相同

我没有得到任何明确的结论.如果我做

var >> array[n++];
Run Code Online (Sandbox Code Playgroud)

运算符>>用于读取字符的流.¿它存放在哪里我读了?在n或n + 1?

谢谢

c++ operator-precedence

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

是使用评估的顺序来检查空值的不良做法?

如果我希望对一个字符串执行两次检查,它不是null,并且它不是0长度,我可以这样做 -

if(string != null) {
    if(string.length() > 0) {
        //Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

或者我可以做到这一点

if(string != null && string.length() > 0) {
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

首先执行第一次检查,第二次比较不会发生,并且不会抛出NullPointerException.

第二种方法是否可以保证在所有情况下都有效?如果是这样,使用它会被视为不良做法吗?

java null operator-precedence

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