&(单与) 和 &&(双与)的区别:
  & 和 && 都可以做逻辑与的运算符,表示逻辑与(and),当运算符的两边的表达式的结果都为true时,整个运算结果才为true,否则只要有一边为false,运算结果都为false。
  重要的是双与&&具有短路功能,只要左边为false,则直接将运算结果记为false,不需要运算右边。

同理:双或(||)同样具有短路功能,只要左边为真true,就直接将运算结果视为true,不需要运算右边。