5.4:说面下列例子的含义,如果存在问题,试着修改它。
(a) while (string::iterator iter !=s.end()) { /*.....*/}
(b) while (bool status =find(word) ) { /*...*/ }
if(!status) { /*.....*/ }
Ans:a)语句的含义是判断迭代器是否指向尾元素的下一个位置,如果不是,则执行循环体内容。但是存在问题,由于一开始就使用了迭代器,并没有进行初始化,编译器会报错。
修改后的程序:
string::iterator iter=s.begin();
while ( iter !=s.end()) { /*.....*/}
b)语句的含义是通过find函数寻找word这个值,如果找到,返回一个bool类型status,其值为true,然后执行while的循环体;若没有找到返回false,跳出当前while循环,然后通过If语句判断,为真执行if的语句块。但是存在问题,在控制结构中定义的变量,其作用域在当前的控制结构中,若要在其他控制结构中使用,需要在外部定义变量。
修改后的程序:
bool status;
while (bool status =find(word) ) { /*...*/ }
if(!status) { /*.....*/ }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步