慕课网 5.6算法——查找(二)

下面的例子查找一组人名,如果人名中包含“诺贝尔”,就打印“有诺贝尔”,如果没有,就打印“木有木有”:

通过源代码可以看到,数组的第二个元素就是要查找的“诺贝尔”

运算结果

这段代码有一个逻辑错误,事实上,数组中只要有一个“诺贝尔”就可以认定“有诺贝尔”,但必须所有的名字都不是“诺贝尔”,才能认定“木有木有”。

或者这么说:一组数据中只要有一个符合条件,就可以认为“有符合条件的数据”;

但只有一组数据中每一个都不符合条件,才能认为“没有符合条件的数据”——一个相等即为"有",全都不等才是"无"


那么,到底应当怎样判断有无呢?请看下面的代码:

变量hasNbr起到了关键作用:记录筛选结果

它的初始值为false,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为true,表示

循环结束后,只要看看变量hasNbrtrue还是false,就知道循环中是否修改过。

运行结果

删去数组中的“诺贝尔”

运行结果


程序


运算结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 都两星期没看我妈了,感觉挺内疚的,还是芳芳、伟伟孝顺些,今天无论如何也要看下,哪怕待在那的时间短!
    相伴而行阅读 233评论 0 0
  • 1 你没带伞吧?她问。 滴答、滴答。雨从楼道的狭窗里漏入,打湿白墙上的霉斑。 嗯。他的眼神落在她背上;长发。印象中...
    雀子阅读 877评论 13 2
  • 1、保持元件宽高比例:仅在输入元件的宽或高时有用,鼠标拖动无用。 2、设置形状或图片圆角 3、设置矩形仅显示部分边...
    淮水依依阅读 923评论 0 0