if('A'<= e <='Z')与if(e> ='A'&& e <='Z')之间的差异

ant*_*age -5 c conditional-statements

这两者在逻辑上是相同的,但它们的工作方式不同:

if (e >='A' && e <= 'Z')
Run Code Online (Sandbox Code Playgroud)

if('A' <= e <= 'Z')
Run Code Online (Sandbox Code Playgroud)

第一行代码正常,但第二行不正常.为什么?

Dan*_*anL 6

<=运算符是左关联的,所以你的第二个实际上是

if( ('A' <= e) <= 'Z')
Run Code Online (Sandbox Code Playgroud)

'A'<= e是一个bool,它将是0或1,所以我相信你的陈述相当于:

if (0 <= 'Z')
Run Code Online (Sandbox Code Playgroud)

要么

if (1 <= 'Z')
Run Code Online (Sandbox Code Playgroud)

  • 大概?它*将*为0或1. (5认同)