上面的程序,介绍了一种潜在歧义源称为晃来晃去的其他问题。为配合外或内如果声明上述程序的else语句?
答案是,else语句搭配上无与伦比的如果在同一个语句块。因此,在上面的程序,其他配合内如果语句。
为了避免这种歧义时,嵌套的复杂的语句,它将语句块内通常是一个好主意。这是上面的程序写的无歧义:
#包含iostream > <
国际main()
{
使用std命名空间;
cout <<“输入一个号码:”;
int NX;
{
如果(NX<20)
cout << NX <<”之间的10和20“<< endl;
其他/ /连接到内如果语句
cout << NX <<“大于20”<< endl;
}
返回0;
}
现在是很清晰,else语句属于内如果语句。
包裹内如果一个语句块也允许我们明确地附加其他外部IF语句:
#包含iostream > <
国际main()
国际main()
{
使用std命名空间;
cout <<“输入一个号码:”;
int NX;
CIN > > NX;
如果(NX > 10)
{
如果(NX<20)
cout << NX <<”之间的10和20“<< endl;
}
其他/ /连接到外部IF语句
其他/ /连接到外部IF语句
cout << NX <<“小于10”<< endl;
返回0;
}
一块使用告诉编译器,else语句应重视如果在语句块。无块,else语句将附加到最近的不匹配的if语句,将内如果语句。
如果报表通常用来做错误检查。例如,计算平方根,传递到平方根函数的值应该是一个非负整数:
#包含iostream > <
#包括< cmath > / / sqrt()
无效的printsqrt(双值)
{
使用std命名空间;
如果(值> = 0)
cout <<“平方根”<<值<<”是“<< sqrt(值)<< endl;
其他的
cout <<“错误:”<<值<<“负面”<< endl;
}
如果报表也可以用来做早期的回报,在一个函数返回控制函数的末尾之前打电话。下面的程序中,如果参数值是负的,该函数返回一个符号常量或枚举值的误差给调用者的代码吧。
国际docalculation(int值)
{
/如果值是一个负数
如果(N值<0)
/ /早返回一个错误代码
返回error_negative_number;
/ /做计算值在这里
返回值;
}
如果报表也常被用来做简单的数学计算功能,如min()或max()函数返回它的参数的最大值或最小值:
(int,int int min NX,纽约)
{
如果(NX >纽约)
回纽约;
其他的
返回NX;
}
请注意,这最后一个功能是如此简单,它也可以写成如果操作员使用的算法(?:):
(int,int int min NX,纽约)
{
返回NX >纽约?纽约:nx;
}