background image

int main()
{
    int a,b;

    cout << "Enter numerator: ";
    cin >> a;

    cout << "Enter denominator: ";
    cin >> b;

    if(b) cout << "Result: " << a/b << "\n";
    else cout << "Cannot divide by zero.\n";

    return 0;
}
程序的输出如下:
Enter numerator: 12
Enter denominator: 2
Result: 6

Enter numerator: 12
Enter denominator: 0
Cannot divide by zero.
    注意在上面的程序中使用使用了 if(b)来检查 b 是否为 0。这样写实正确的,
因为当 b 是 0 值的时候,if 的控制条件就是 false,else 分支得到执行。否则,
控制条件就是 true(非 0 值),于是便进行了除法运算。这里,没有必要写出
如下的程序:
if ( b== 0) cout << "Cannot divide by zero.\n";
上面的写法通常会被认为是不好的编程风格。这种写法显得冗余,并且效率较
低。
嵌套的 if
    嵌套的 if 是指一个 if 语句作为另外的 if 语句或者 else 语句的目标语句。实
际编程中,嵌套的 if 是很普遍的。需要注意的是:在嵌套的 if 语句中,else 分
支总是对应的是和该 else 分支在同一代码块中的没有 else 分支的那个最近的
if 语句。下面就是一个例子:
if (i) 
{
    if (j) result = 1;
    if (k) result = 2;
    else result = 3; // 和 if(k)对应
}
else result = 4; // 和 if(i)对应
    正如上面的注释那样,最后的那个 else 对应的不是 if(j),尽管它是距离最
近的没有 else 分支的 if,这是因为它们不在同一个代码块中。所以最后一个
else 是和 if(i)对应的。花括弧中的最后一个 else 是和 if(k)相对应的,因为