在单个if语句中使用多个条件?

Tan*_*ash 0 c# if-statement

在Python中,我可以做一些这样的事情,我认为这比一个语句中的两对条件更清晰:

if 1 < 2 < 3:
  print 'triple testing?'

else:
  print 'more like triple failing!'
Run Code Online (Sandbox Code Playgroud)

没有遇到任何问题,但是在C#中,它将第一次比较1 < 2转换为bool之前的转换,因此它会引发异常Operator '<' cannot be applied to operands of type 'bool' and 'int'.

有没有办法避免添加第二个条件,所以我不必将三重条件分成两组,而不是一个"三重"条件,就像我在Python中可以做到的那样?

if (1 < 2 & 2 < 3) { ... }
Run Code Online (Sandbox Code Playgroud)

编辑:我使用它的一个例子是确保inta在一系列数字之间.

if ((0 < x) && (x < 10) { ... } //I can already do this
vs
if (0 < x < 10) { ... } //Would rather have something like this
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 6

对条件进行分组.试试这个,

if ((1 < 2) && (2 < 3))
{
   // statements here
}
else
{
   // statements here
}
Run Code Online (Sandbox Code Playgroud)

  • 完全代码块的+1 ...这是一个小的但我认为它使它更具可读性并有助于将答案放在上下文中. (2认同)