语句
5.1 简单语句
5.2 语句作用域
答:(a)错误,while判断语句中使用初始化,会使得iter一直是初始值,从而可能导致死循环,应该改为:string::iterator iter = s.begin();
while(iter != s.end()){/* ++iter /}
(b) 错误,status初始化应该放在外面,否则if的判断语句无法访问status,应该改为
bool status;
while(status = find(word)){/**/}
if(!status) {/ */}
5.3 条件语句
5.3.1 if语句
答:(a)
if(iva1 != ival2)
ival1 = ival2;
else
ival1=ival2=0;
(b)
if(ival < minval){
minval = ival;
occurs = 1;
}
(c)
if(int ival = get_value()){
cout << "ival = " << ival << endl;
if(!ival)
cout << "ival = 0\n";
}
(d)
if(ival == 0)
ival = get_value();
5.3.2 switch语句
5.4 迭代语句
5.4.1 while语句
5.4.2 for语句
答:(a)ix只在for循环内部有效
int ix = 0;
for(; ix != sz; ++ix){/*......*/}
if(ix != sz)
//.................
(b) for循环初始语句的分号不可以省略,而且ix没有进行初始化
inx ix = 0;
for(; ix != sz; ++ix){/*.............*/}
( c) 死循环
5.4.3 范围for语句
5.4.4
答:(a) do部分需要加{}
(b)do-while语句不允许在循环条件内定义变量
int ival;
do{
ival = get_response();
}while(ival);
© do-while语句条件部分的变量必须定义在循环体外,修改如(b)
5.5 跳转语句
5.5.1 break语句
5.5.2 continue语句
5.5.3 goto语句
5.6
5.6.1 throw表达式
5.6.2 try语句块