而循环错误与opperator

3次意见(最近30天)
保罗Nadeau
保罗Nadeau 2020年4月27日
评论道: 保罗Nadeau2020年4月27日
有人能告诉我为什么我一直得到错误"未定义运算符'<'为输入参数类型'cell',以及如果它工作,它就会进行一个无限循环,并必须停止而不是再次输入?
船=菜单(“你想要一个推荐的设置吗?”,“是的”,“不”);
如果船= = 2
设置=对话框(“好吧,祝你今天愉快!”记得访问myfwc.com了解许可证和物种规定,并查看当地的渔业和天气报告!”)
elseif船= = 1
BoatStyle =菜单(“请选择最能描述你的船的风格:”,“中心控制台”,“海盗”,平底的,“游艇”,“浮”);
如果BoatStyle = = 1
BoatStyle = inputdlg (“请输入你的船的长度”)
这句话的意思是:“我的意思是我的意思是我的意思是我的意思
对话框(的错误。请输入真实的船的尺寸在10英尺到60英尺之间。”)
如果船型>= 10 &&船型<= 60
对话框(“这艘船的尺寸不错。”)
结束
结束
结束
结束

0评论

登录并发表评论。

答案(2)

沃尔特·罗伯森
沃尔特·罗伯森 2020年4月27日
inputdlg不返回数值:它返回字符向量的单元格数组。您需要使用str2double来获得等效的数字。

2的评论

沃尔特·罗伯森
沃尔特·罗伯森 2020年4月27日
BoatStyle = str2double (inputdlg (“请输入你的船的长度”));
61 . isnan(船型)||船型< 9 || >
保罗Nadeau
保罗Nadeau 2020年4月27日
谢谢,在推特上发了几下,让它开始工作了

登录并发表评论。


迪帕克·古普塔
迪帕克·古普塔 2020年4月27日
嗨,保罗,
正如Walter在他的回答中提到的,inputdig返回单元格中的数据,而不是数值。因此,单元格值不能直接与逻辑运算符一起使用。在应用逻辑运算符之前,需要将此单元格值转换为数值。
除此之外,您使用了一个while循环来检查条件,如果条件为真,循环将运行。但是没有条件停止这个循环,所以它将继续运行。我认为在这种情况下,一个if循环就足够了。
BoatStyle =菜单(“请选择最能描述你的船的样式:”、“中控台”、“维京”、“平底”、“游艇”、“浮桥”);
如果BoatStyle == 1
船型= str2num(cell2mat(inputdlg('请输入你的船的长度')))
如果是空的(船型)||船型< 9 ||船型> 61
对话框(“错误。请输入真实的船只尺寸在10英尺到60英尺之间。”)
如果船型>= 10 &&船型<= 60
(“这艘船的尺寸不错。”)
结束
结束
结束

2的评论

保罗Nadeau
保罗Nadeau 2020年4月27日
它仍然不能解决我的问题。当它运行时,会发生两件事。1,它会给我相同的错误,2,它会弹出我输入的错误信息,但是无限循环,我需要Ctr C来停止它。
保罗Nadeau
保罗Nadeau 2020年4月27日
我在推特上刷了几下才修好,谢谢

登录并发表评论。

下载188bet金宝搏