章节
问答
课签
笔记
评论
占位
占位

算法——查找(二)

上一节我们学习查找,是把符合条件的数据打印出来。有的时候我们不想打印,只想知道有没有符合条件的数据,该怎么做呢?下面的例子查找一组人名,如果人名中包含“诺贝尔”,就打印“有诺贝尔”,如果没有,就打印“木有木有”:

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

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

或者这么说:一组数据中只要有一个符合条件,就可以认为“符合条件的数据”;但只有一组数据中每一个都不符合条件,才能认为“没有符合条件的数据”——一个相等即为"有",全都不等才是"无"

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

变量 hasNbr 起到了关键作用:记录筛选结果。它的初始值为 false ,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为 true ,表示。循环结束后,只要看看变量 hasNbr 是 true 还是 false ,就知道循环中是否修改过。运行结果如下(有诺贝尔):

删去数组中的“诺贝尔”,再次运行程序:

 

任务

右边代码检查了一组考试分数,看有没有考试不及格的,请仔细阅读代码,了解程序逻辑,然后在第 18 行(如果需要可以写多行)填写代码,完成功能。

?不会了怎么办

第 18 行填写:

hasNopass = true;
break;

break 其实不是必须的,但是一旦确认有不及格的分数,那么继续筛选下去就没有意义,用 break 跳出循环可以节省时间。

||
1
2
using System;
using System
    .Collection
    s.Generic;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / weixin_慕斯0346424
has就是有,Nbr是诺贝尔的缩写,hasNbr是自定义的

最新回答 / weixin_慕码人3003085
bool其实就是“逻辑型”啦,有两个值,一个是真、是、对的"true",一个是假、非、错的"false",注意赋值都必须为小写字母。

最新回答 / qq_慕姐2428507
Random ra = new Random();

最新回答 / Henry_pan
可以,因为它在那里没有发挥什么作用

最新回答 / 慕妹3125690
if() 这个默认判断是true的情况

最赞回答 / 慕移动9421247
你这样,第一个数85进来,就进入else里面,然后输出都及格了,不管数组后面的数是多少都不再进行判断了,因为你已经break跳出了。

最新回答 / 初六
因为 bool和int,char等一样是定义变量的类型,返回值就是true或者false。hasNopass是变量。

最新回答 / 慕妹2510298
if (hasNopass==false)                Console.WriteLine("有人不及格");这样

最新回答 / qq_慕村3313029
你试试debug吧,f9设置断点,f11逐步调试,你调试看看那时的值是真还是假

已采纳回答 / 慕娘3306793
是的,完全一样,你可以自己去跑一下

最新回答 / MU__fans
string[] names=....[]是代表数组参数,而在for循环中定义 i : (int i=0);names[i]=="诺贝尔"查找条件是否符合就是调用i,i是names数组中一个定义参数,就是将爱因斯坦,诺贝尔,玻尔这些数据都定义为i;然后for循环检查names[i]是否为诺贝尔

最赞回答 / 慕粉2314255773
数组从0开始,例如数组5个数,则数组里面就是a[0]-a[4];  二维数组a[1][2]中1表示0-1,代表2组数,2代表0-2,三个数

已采纳回答 / 慕粉3986761
int[] num = {1,2,3,4,5,6};            for (int i = 0; i < 6; i++)            {                if (num[i] % 2 == 0)                    Console.WriteLine(num[i]);            }你的源码和这个类似吗?
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言