提问3-10节中利用名字查找花花信息的问题--可以不用flag吗

提问3-10节中利用名字查找花花信息的问题--可以不用flag吗

为什么最后面用名字查找花花信息要加个flag?我们可以直接用输出语句替代flag吗?代码如下:

it=set.iterator();

while(it.hasNext()) {

Cat c=(Cat)it.next();

if(c.getName().equals("花花")) {

System.out.println("花花找到了");

System.out.println(c);

break;

}else {

System.out.println("花花没找到!");

break;

}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕酷酷 2019-11-01 13:44:23

同学你好,按照同学的编写方式是不正确的,因为使用迭代器如果遍历的第一个对象不是“花花”,则会输出“花花没找到!”的提示信息,然后执行break跳出循环了,不能再遍历第二个元素了,所以建议使用flag的方式,来查找花花信息。这样当循环结束后,flag变量值未改变为flase时,根据变量的值输出“没找到”的提示哦。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 删去else语句就没问题了吧
    2021-12-30 13:32:51
  • 同学你好,同学去除else与else中的break是可以的,不过在每一次循环对象不是“花花”时,都会输出“花花没找到!”的提示信息,直到是花花为止。所以不建议同学使用该方式,建议在while循环外进行if判断输出提示语句。

    祝学习愉快!

    2021-12-30 14:33:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师