Ash*_*han 0 c c++ python operator-precedence comparison-operators
C如何处理条件语句,如n >= 1 <= 10?
我最初认为它将被评估为n >= 1 && 1 <= 10,因为它将在Python中进行评估.因为1 <= 10总是如此,所以第二个部分and是冗余的(布尔值X && True等于布尔值X).
但是,当我运行它时n=0,条件被评估为true.事实上,条件总是似乎评估为真.
这就是我看到的例子:
if (n >= 1 <= 10)
printf("n is between 1 and 10\n");
Run Code Online (Sandbox Code Playgroud)
小智 10
>= 运算符从左到右进行求值,因此它等于:
if( ( n >= 1 ) <= 10)
printf("n is between 1 and 10\n");
Run Code Online (Sandbox Code Playgroud)
第一个( n >= 1 )被评估为真或假,等于1或0.然后将1或0的结果与result <= 10总是评估为真的结果进行比较.因此,printf("n is between 1 and 10\n");将始终打印该声明
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |