我正在尝试创建一个函数来验证值是否在选定的边界内,如果不是,用户必须重试直到验证。
我想知道为什么我的代码跳过任何给定值的 if 条件,它会返回我的输入提示:">错误:无效表达式。检查缺少乘法运算符、缺少或不平衡的分隔符或其他语法错误。
例如,A=limit(5pi/6,-pi/2,pi/2)
直接跳转到 else 条件,而 if 条件则为true。
这是我的代码:
function alpha = limit(pos,min,max)
if (pos >= max) && (pos <= min)
alpha=pos;
else
while pos >= max || pos <= min
prompt = 'Enter value between max and min';
alpha = input(prompt);
end
end
end
该函数首先检查pos
是否大于或等于max
又小于或等于min
。
我希望你打算max
大于min
.因此,if
行应为:
if (pos <= max) && (pos >= min)
我假设你的val_max
/val_min
是错别字(应该是max
/min
)然后,你的while
循环取决于pos
的值。但是pos
永远不会在循环中更新,所以你的循环只会永远迭代。
您需要更新while
循环中的pos
才能正常工作。尝试这样的事情:
function alpha = limit(pos,min,max)
while pos > max || pos < min
prompt = 'Enter value between min and max';
pos = input(prompt);
end
alpha = pos;
end