... | ... | @@ -369,11 +369,122 @@ int timeLength; |
|
|
|
|
|
### 7 表达式
|
|
|
#### 7.1 如果表达式中的运算符较多,使用括号确定运算顺序
|
|
|
  由于一种语言的运算符的优先级关系很复杂,很难一一记清楚,所以如果表达式较长,则不要使用默认的运算符顺序而使用括号来确定运算顺序。
|
|
|
|
|
|
  示例:
|
|
|
|
|
|
```
|
|
|
if ((a | b) && (a & c))
|
|
|
word = (high << 8) | low
|
|
|
```
|
|
|
|
|
|
#### 7.2 避免大表达式中使用赋值语句
|
|
|
  以下两种写法都不是良好的编程风格:
|
|
|
|
|
|
```
|
|
|
area = (width = width * SCALE_FACTOR) * height;
|
|
|
while ( (c = getChar()) != ‘a’)
|
|
|
{
|
|
|
……
|
|
|
}
|
|
|
```
|
|
|
|
|
|
#### 7.3 避免数学表达式和程序表达式混淆
|
|
|
  if (a < b < c)中的a < b < c是个数学表达式,它并不代表 (a < b) && (b < c)的意思,而是指(a < b) < c的意思,在程序编写的时候避免使用这种a < b < c的写法。
|
|
|
#### 7.4 在条件表达式中常量建议书写在前面
|
|
|
  示例:
|
|
|
|
|
|
```
|
|
|
if (0 == a)
|
|
|
{
|
|
|
….//program
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
### 8 常用语句
|
|
|
#### 8.1 if语句
|
|
|
  if语句的标准写法如下:
|
|
|
|
|
|
```
|
|
|
if (expr1)
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
```
|
|
|
  或者:
|
|
|
|
|
|
```
|
|
|
if (expr1)
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
else if (expr2)
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
```
|
|
|
  或者:
|
|
|
|
|
|
```
|
|
|
if (expr1)
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
else if (expr2)
|
|
|
{
|
|
|
....
|
|
|
}
|
|
|
```
|
|
|
  对于判断语句,遵循以下的写法(假设变量名为flag):
|
|
|
* **1. 如果flag是布尔型变量,则如此书写:**
|
|
|
|
|
|
```
|
|
|
if (flag)
|
|
|
if (!flag)
|
|
|
```
|
|
|
|
|
|
* **2. 如果flag是浮点型,避免使用等于或者不等于判断:**
|
|
|
  如这样的写法不好:
|
|
|
|
|
|
```
|
|
|
if (0 == flag)
|
|
|
```
|
|
|
  而应该使用类似这种大于等于或者小于等于进行判断:
|
|
|
|
|
|
```
|
|
|
if (flag >= -0.000001 && flag <= 0.000001)
|
|
|
```
|
|
|
|
|
|
* **3. 如果flag是整数,避免下面的写法:**
|
|
|
|
|
|
```
|
|
|
if (flag)
|
|
|
```
|
|
|
  或
|
|
|
|
|
|
```
|
|
|
if (!flag)
|
|
|
```
|
|
|
  而应该写成
|
|
|
|
|
|
```
|
|
|
if (0 == flag)
|
|
|
```
|
|
|
  或
|
|
|
|
|
|
```
|
|
|
if (0 != flag)
|
|
|
```
|
|
|
|
|
|
#### 8.2 循环语句
|
|
|
#### 8.3 switch语句
|
|
|
### 9 方法
|
... | ... | |