上一节我们学习查找,是把符合条件的数据打印出来。有的时候我们不想打印,只想知道有没有符合条件的数据,该怎么做呢?下面的例子查找一组人名,如果人名中包含“诺贝尔”,就打印“有诺贝尔”,如果没有,就打印“木有木有”:
通过源代码可以看到,数组的第二个元素就是要查找的“诺贝尔”,运行结果是这样的:
这段代码有一个逻辑错误,事实上,数组中只要有一个“诺贝尔”就可以认定“有诺贝尔”,但必须所有的名字都不是“诺贝尔”,才能认定“木有木有”。
或者这么说:一组数据中只要有一个符合条件,就可以认为“有符合条件的数据”;但只有一组数据中每一个都不符合条件,才能认为“没有符合条件的数据”——一个相等即为"有",全都不等才是"无"。
那么,到底应当怎样判断有无呢?请看下面的代码:
变量 hasNbr 起到了关键作用:记录筛选结果。它的初始值为 false ,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为 true ,表示有。循环结束后,只要看看变量 hasNbr 是 true 还是 false ,就知道循环中是否修改过。运行结果如下(有诺贝尔):
删去数组中的“诺贝尔”,再次运行程序:
右边代码检查了一组考试分数,看有没有考试不及格的,请仔细阅读代码,了解程序逻辑,然后在第 18 行(如果需要可以写多行)填写代码,完成功能。
第 18 行填写:
hasNopass = true; break;
break 其实不是必须的,但是一旦确认有不及格的分数,那么继续筛选下去就没有意义,用 break 跳出循环可以节省时间。
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报