得到一个错误
编写一个名为under_age需要两个正整数的函数标量参数:年龄代表某人的年龄限制,代表了年龄限制。该函数返回true,如果人比年龄年轻。如果第二个参数
363(30天)
显示旧的评论
函数too_young = under_age(年龄限制)
限制= 21
如果年龄< =限制
too_young = true;
elseif年龄> =限制
too_young = false;
其他的
流(“无效\ n”)
结束
15个评论
1月
2022年4月4日
这已经成为一个奇怪的线程。我们发现一堆理想的实现。
我们需要6行代码(包括“结束”)。约翰IF块浓缩成1线,但是毫无疑问他的实现是干净的和详尽。
是什么原因发布很多其他少优雅而不工作版本?
许多初学者建议:
如果年龄>
too_young = true;
其他的
too_young = false;
结束
而不是紧凑和高效:
too_young = >年龄限制;
接受的答案
约翰D 'Errico
2019年3月23日
编辑:约翰D 'Errico
2020年11月8日
这不是一个错误。这是一个失败的代码工作,因为它应该是由你的目标。
我说了什么?每个人都说到目前为止什么?你不能像你那样设置一个默认。
即使你通过在18号的极限下,你要做的第一件事里面是重置价值21。
相反,你需要考虑如何测试,看是否提供了限制。
编辑:(18个月后)
现在有很多的答案,都是漫长的,我将展示如何编写它。
函数tooyoung = under_age(年龄限制)
% under_age:返回true,如果人的年龄限制
%用法:tooyoung = under_age(年龄限制)
%
%参数:(输入)
%——数字时代。写,年龄可以是标量,或任何大小的数组
%
%限制:可选参数,如果没有提供,默认是21
%
%参数:(输出)
% tooyoung——一个布尔变量,表示如果年龄限制。
%
%不做测试来验证年龄或限制,如果提供的是有效的
%年龄本身,或者即使他们是数字。更好的代码
%做这些事情。
%测试限制已经提供。如果不是,那么默认是21
如果输入参数个数< 2,限制= 21;结束
%不需要使用一个if语句。测试本身是期望的结果。
tooyoung =年龄<限制;
结束
看到我的大多数代码实际上是注释。帮助是非常重要的,因为它允许您快速使用代码明年当你忘记如何写,或当你忘记参数的意思。
认为内部评论提醒自己,一年后当你看代码和需要改变的代码由于某种原因,或上帝保佑,你需要调试它。我推荐的目标是一行每行代码的评论,或在最坏的情况下,每一行代码在代码中做重要的事情。
评论是免费的!好的代码应该积极绿色由于所有的评论。我的解决方案代码冗长的只是因为所有的评论。
还有什么?
记住,白色的空间是非常重要的。它使您的代码容易阅读。
使用聪明的,有意义的变量名。良好的助记符变量名称有助于使代码可读性,再一次,容易阅读。当你通过代码扫描,你不想继续回去被迫记住变量wxxyy做什么工作?
就像我说的,更好的代码会包括测试来验证这两个年龄和极限,如果提供,实际上是数值变量。最好的代码是友好的代码。当失败时,你想要的代码法耶尔在一种友好的方式,告诉这个人被认为是错误的。你不想发生什么是代码做了一些扭曲的和意想不到的,或者返回一些随机的难以理解的错误消息。最好的代码很容易使用的代码。
最后测试这段代码是一个矢量化的测试,在,如果你的代码是这样的:
tooyoung = under_age ([12 75 29], 21)
tooyoung =
1 1 0 0
它将工作并返回一个向量的结果。向量化代码通常是好的代码,因为它允许用户不必使用循环多次当他们想要使用的代码行。
最后,我可以写代码,只需要一行代码?因此测试是否限制了,返回一个相比,年龄只是一行吗?可能,但这是不必要地复杂,难以阅读和调试。一直没有获得质量的代码或运行速度。好的代码很简单,易于阅读,易于使用,易于调试。
5个评论
更多的答案(24)
Saurabh库马尔
2019年3月28日
编写一个函数
under_age
这需要两个正整数标量参数:
- 年龄代表某人的年龄,和
- 限制代表一个年龄限制。
函数返回
真正的
如果这个人是年轻的比年龄限制。如果第二个参数,
限制
不提供,它默认为21。你不需要检查输入正整数标量。
函数x = under_age(年龄、限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
x = true;
其他的
x = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
x = true;
其他的
x = false;
结束
结束
7评论
沃尔特·罗伯森
2021年6月20日
MATLAB(和几乎所有编程语言…但不是
所有
)程序语言,语句的顺序是很重要的。
假设你是爬梯子。在大多数情况下,你一步上升。现在假设你项目,
“移动脚高50厘米,体重”
但是当你到达山顶呢?
“移动脚高50厘米,体重”
“如果没有更高的评级,不迈出这一步”
太迟了。你已经把你的体重在半空中
之前
检查是否有东西把你的体重上。
你不是需要一个检查
“如果有一个更高的阶段,移动脚高50厘米,体重”
先检查,
之前
依赖于它的存在。
你的编码
如果年龄<限制
如果输入参数个数< 2
限制= 21
结束
结束
类似于没有检查现有更高一级之前你的体重会。
= = =
最好的编程实践首先检查异常,检查是否计算是有效的在计算之前。
然而,在
是
某些情况下,它是有效的“修补”如果你遇到一个例外。例如,更好的编程实践“1 / x如果x不是0,0 x = 0”
y = 0(大小(x));
掩码= x ~ = 0;
y(面具)= 1. / x(面具);
这段代码不除0。
但如果你是
确定
您使用的是IEEE 754,你可以指望这一事实IEEE 754定义,1 / x
一些
结果1/0(而不是崩溃的程序),而你可以做一个patch-up-later版本:
y = 1. / x;
y (x = = 0) = 0;
就像patch-up-later版本的问题,
函数too_young = under_age(年龄限制)
too_young =年龄< 21;
如果输入参数个数> 1
too_young =年龄<限制;
结束
结束
请注意,该变量
限制
没有使用之前已经检查,以确保它是礼物。
玛雅ghugretkar
2019年6月7日
这也可以工作…
有点紧凑的方法
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
返回
结束
结束
Nijita Kesavan Namboothiri
2019年6月25日
函数too_young = under_age(年龄限制)
如果(输入参数个数< 2)
限制= 21;
结束
如果(年龄<限制)
too_young = true
其他的
too_young = false
结束
结束
sudeep lamichhane
2020年4月27日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
赛语Gorantla
2020年2月1日
编辑:里克
2020年6月17日
函数[too_young] = under_age(年龄、限制)
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
elseif输入参数个数< 2
如果年龄< = 21
too_young = true;
其他的
too_young = false;
结束
结束
0评论
穆罕默德elyoussef
2020年4月4日
函数c = under_age (a, b)
如果输入参数个数< 2
b = 21;
结束
如果b >
c = true;
其他的
c = false;
结束
0评论
摩诃汗
2020年4月9日
函数[too_young] = under_age(年龄、限制)
如果(输入参数个数< 2)| | isempty(限制)
限制= 21;
结束
如果年龄> 21
too_young = false;
elseif年龄<限制
too_young = true;
elseif年龄= =
too_young = false;
elseif年龄< = 21
too_young = true;
elseif年龄<年龄
too_young = false;
elseif年龄< = 21
too_young = true;
其他的
too_young = true;
结束
jaya shankar veeramalla
2020年5月29日
函数too_young = under_age(年龄限制)
如果(输入参数个数< 2)| | isempty(限制)
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的年龄> =限制
too_young = false;
结束
0评论
AYUSH MISHRA
2020年6月4日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
解决方案;
under_age(18岁,18)
ans =
逻辑
0
under_age (20)
ans =
逻辑
1
0评论
穆罕默德阿克毛Afibuddin Putra
2020年8月10日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = 1 = = 1;
其他的
too_young = 1 = = 2;
结束
结束
Omkar Gharat
2020年8月11日
函数[too_young] = under_age(年龄、限制);
%的年龄=输入(输入申请人的年龄:)
% =限制输入(输入申请人的年龄限制:)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
这是我的代码,它是100%正确的
Khom Raj Thapa Magar
2020年9月6日
确保你的缩进是正确的编码
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
调用功能
> > too_young = under_age(18岁,18)
> > too_young = under_age (20)
输出:
too_young =
逻辑
0
too_young =
逻辑
1
0评论
杰西卡Trehan
2020年9月21日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
%完美的代码
7评论
里Olha Skurikhina
2021年1月11日
谢谢你!这是非常愚蠢的。我已经解决了困难问题的课程但是这个不能解决。那是我的问题,加上如果=年龄限制,它仍然是应该返回false“< =”是不正确的。
阿姆阿里
2021年9月6日
函数too_young = under_age(年龄、限制);
开关输入参数个数
情况下1
限制= 21;
结束
如果(年龄>);
too_young = true;
其他的
too_young = false;
结束
开关输入参数个数
情况下2
结束
如果限制年龄>;
too_young = true;
其他的
too_young = false;
结束
VIGNESH B年代
2021年10月13日
函数[too_young] = under_age(年龄、限制)
如果输入参数个数= = 2
too_young =比较(年龄、限制);
elseif输入参数个数= = 1
too_young =比较(年龄、21);
结束
结束
函数[答案]=比较(x, y)
如果x < y
回答= (1 > 0);
其他的
回答= (0 > 1);
结束
结束
3评论
亚历山大•
2022年6月29日
这对我来说很好。很短,但我不明白为什么“nargout”工作的一部分。
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21
结束
too_young =年龄<限制;
如果nargout = = 2
too_young = true (1);
结束
4评论
默罕默德
2022年7月23日
%帮助需要
错误显示=输出参数“x”(也不可能)赋值在执行“under_age”功能。
函数x = under_age(年龄、限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
x = true;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
x = true;
结束
结束
3评论
默罕默德
2022年7月23日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
非常感谢
Mr.Walter罗伯森