鱼C论坛

 找回密码
 立即注册
查看: 1936|回复: 7

关于循环for - if的问题

[复制链接]
发表于 2022-5-1 22:41:50 | 显示全部楼层 |阅读模式
60鱼币
本帖最后由 0412zc 于 2022-5-1 22:43 编辑

用for if 循环做一个图书查询功能

用户输入查询信息message,与books[i]比较,找到结果,打印(可以忽略return i , 一个备用参数)。找不到结果,返回-1。

现在的结果是,如果books[i]中有2条以上符合条件的信息,只能找出来一条,而且这一条信息打印2次。

请各位大神帮我找找,哪里出了问题,谢谢。

代码

代码


结果

结果

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-1 23:15:57 | 显示全部楼层
你for的判断条件i<k,k在函数里没定义,这是个全局变量?初始化过没有?
在if里面加一条打印i的值看看,同样的信息打印两次,要么i没有变过,要么存的图书信息有什么问题。而且也不知道你是怎么调用这个函数的,只能你自己调试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-1 23:34:23 | 显示全部楼层
1、你的search函数在搜索到有效数据时就会return(退出函数),也就是说你的设计就是每次search被调用只要找到一个匹配的就退出了;
2、至于结果有两次打印,猜测是由于你的search被调用了两次;而且两次调用都是从0开始搜索的,所以得到的结果也是一样的;
具体你需要在检查一下你的函数调用是否是这样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-2 00:30:50 | 显示全部楼层
930552489 发表于 2022-5-1 23:34
1、你的search函数在搜索到有效数据时就会return(退出函数),也就是说你的设计就是每次search被调用只要 ...

我也试着把return放到for外面,报错。我现在也知道放外面是对的,现在就从这开始改。之前也打印了i信息,第一次打印,循环内i=5, 循环外i=5. 第二次打印,循环内i=5, 循环外i=6。

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-2 00:32:38 | 显示全部楼层

k是全局变量,已经预加载了5本书,所以k=5, k是没问题的。

之前也打印了i信息,第一次打印,循环内i=5, 循环外i=5. 第二次打印,循环内i=5, 循环外i=6。

我现在已经把return放到循环外面了,在这个基础上再改。

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-2 13:20:22 | 显示全部楼层
1.不知道books里面的内容,不了解两条符合条件的信息的位置关系
2.不知道你调用这函数的过程
3.不懂你各种修改是怎么改的,把return i放到循环外面,岂不是有两个return了;打印i的信息,循环内还能理解,循环外是怎么能打印两次的,那不是说明你调用这函数就不止一次;k=5,两次打印的时候循环内i=5,你循环终止条件都是i<k,这根本不可能啊

单独这一段代码貌似看不出什么问题,基于以上种种信息的缺乏,只能提供可能的验证方向,具体的你不提供详细就只能靠自己发现了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-7 18:46:51 | 显示全部楼层
你这是Python2吧???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-7 22:50:53 | 显示全部楼层
連code也不給全,一看就調用不只一次,神仙也難救你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表