下面的例子查找一组人名,如果人名中包含“诺贝尔”,就打印“有诺贝尔”,如果没有,就打印“木有木有”:
这段代码有一个逻辑错误,事实上,数组中只要有一个“诺贝尔”就可以认定“有诺贝尔”,但必须所有的名字都不是“诺贝尔”,才能认定“木有木有”。
或者这么说:一组数据中只要有一个符合条件,就可以认为“有符合条件的数据”;
但只有一组数据中每一个都不符合条件,才能认为“没有符合条件的数据”——一个相等即为"有",全都不等才是"无"。
那么,到底应当怎样判断有无呢?请看下面的代码:
它的初始值为false,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为true,表示有。
循环结束后,只要看看变量hasNbr是true还是false,就知道循环中是否修改过。
删去数组中的“诺贝尔”