Break语句在一个if语句

114(30天)
Darragh托宾
Darragh托宾 2020年4月3日
评论道: 杰夫•海斯 2020年4月8日
数= 1:Iteration_lim + 1
%的错误检查功能不收敛
如果数= = Iteration_lim + 1
错误(“迭代达到极限,函数收敛失败。”)
打破
结束
这是我的一段代码,当我把break语句我得到一个错误说”这句话(也可能是以下的)不能达到“。代码运行,并返回一个最终答案,但break语句似乎没有做任何事情。这是有问题的,因为我想返回迭代的数和等效的答案,不是最终的答案,在for循环的结束。我的教授上传相同的执行此任务的代码没有问题。任何帮助都是感激。

答案(2)

杰夫•海斯
杰夫•海斯 2020年4月3日
Darragh - 错误 抛出一个错误并显示一个消息,所以 打破 永远不会被称为…和so the error message makes sense (I get the same error when using it in my code). To get around this, change the 错误 到一个 就像
流(“迭代达到极限,函数收敛失败。\ n”);
11日评论
杰夫•海斯
杰夫•海斯 2020年4月7日
你试过步进通过在每一行代码检查结果是否有意义吗?的角度 angleset 合理吗?

登录置评。


Darragh托宾
Darragh托宾 2020年4月8日
我通过我所有的代码,可以仍然没有得到函数收敛。我的教授提供的这段代码,说这是他返回vlue计数。然而,我不认为它将如何工作的指望第二行似乎并不做任何事和他没有作为输出。后他还包括一个break语句错误消息也迷惑我。
数= 1:Iteration_limit + 1
计数;
如果数= = Iteration_limit + 1%函数返回错误如果函数没有convergeerror(迭代限制。迭代不收敛”)
打破
结束
他声称调用变量指望第二行是充分的然而,当我尝试这样做时我得到了错误”“数”产生的值可能是未使用的。
1评论
杰夫•海斯
杰夫•海斯 2020年4月8日
我怀疑“计数”产生的值可能是未使用的。是一个警告,而不是一个错误可以忽略。你是对的,有“数”;在第二行没有。收敛的问题可能与此无关,但可能与您的实现的代码。可能当你说f 困扰所有输入值的收敛 你的意思是你没有得到正确的答案,你的代码总是到达最大迭代数。这是正确的吗?

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!