If语句不显示

1次查看(最近30天)
%%代码为配料代码
disp (“Ingrediants ID #”);
disp (的鸡蛋:10);
disp (“鳄梨:21”);
disp (“面包片:32”);
disp (花生酱:43的);
disp (“一杯菠菜:54”);
disp (1/4 TBS黄油:65');
disp (“奶酪片:76片”);
n =输入(“你有多少配料?”);
% %食品输入
k = 1: n
(k) =输入(sprintf (“配料#%d的类型代码:”、k));
(k) =输入(sprintf (“配料类型数量#%d:”、k));
结束
如果(n) > = (3)
elseif((k)) = = (10)
elseif((k)) = = (21)
elseif((k)) = = (32)
eggsandwich = (((1) * (1) + ((2) * (2) + ((3) * (3)))
如果eggsandwich > = (95)
disp (“鳄梨鸡蛋三明治”
结束
结束
输入为:
(1) = 10;
(1) = 1;
(2) = 21;
(2) = 1;
(3) = 32;
(3) = 2;
eggsandwich = 95
试着展示“鸡蛋鳄梨三明治”

接受的答案

沃尔特·罗伯森
如果(n) > = (3)
您将输入3个成分,因此n >= 3为真,因此将执行“if”的主体。
elseif((k)) = = (10)
你的“如果”的主体是空的。只有当第一个“如果”为假时,你才会继续到“elseif”,但它是真的。只有当n >= 3和a(k) == 10和a(k) == 21都是假的,但a(k) == 32时,才能得到eggsandwich赋值语句。
注意,k的值是在函数中赋值的最后一个值的“剩余” 对于k = 1:n 循环。不是对每个k值执行if/elseif树,而是对 k 循环完全结束,在本例中是k == n。
我想告诉你,你会更感兴趣
Any (a == 10) && Any (a == 21) && Any (a == 32)
2的评论
沃尔特·罗伯森
如果您像我展示的那样使用any(),那么只有当您的a有多个维度时才会出现这个错误。

登录评论。

更多的答案(0)

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!