簡體   English   中英

if-elseif-else語句幫助MATLAB

[英]if-elseif-else statement help for MATLAB

我是MATLAB的新手(但不是編程新手),在我的工程課中,他們只是教授if / elseif / else和循環的基礎知識。 好吧,我們有一個家庭作業,我感到慚愧,我無法弄清楚。 我必須在某處忽略它的簡潔性。

編寫一個程序,詢問用戶購買時螺栓,螺母和墊圈的數量,並計算和打印總數。 那沒關系,我已經完成了這一部分。

這里有點讓人困惑......

作為附加功能,程序會檢查訂單。 正確的訂單必須至少具有與螺栓一樣多的螺母和至少兩倍於螺栓的墊圈,否則訂單會出錯。 這是程序檢查的唯一兩個錯誤:螺母太少,墊圈太少。 如果錯誤,程序會根據需要打印“檢查訂單:螺母太少”或“檢查訂單:太少的墊圈”。 如果訂單同時存在錯誤,則會打印兩條錯誤消息。 如果沒有錯誤,程序將打印“訂單正常”。 CONFUSING PART --->只需使用一組if -elseif-else語句即可完成此操作。

如果兩個都是真的,我怎么能用if-elseif-else語句打印這個程序呢?

這是我的代碼:

% Get the amount each part
bolts = input('Enter the number of bolts: ');
nuts = input('Enter the number of nuts: ');
washers = input('Enter the number of washers: ');

% Check for the correct amount of nuts, bolts, and washers
if bolts ~= nuts
    disp('Check order: too few nuts');
elseif bolts * 2 ~= washers
    disp('Check order: too few washers');
else
    disp('Order is OK.');
end

% Calculate the cost of each of the parts
costOfBolts = bolts * .05;
costOfNuts = nuts * .03;
costOfWashers = washers * .01;

% Calculate the total cost of all parts
totalCost = costOfBolts + costOfNuts + costOfWashers;

% Print the total cost of all the parts
fprintf('Total cost: %.2f\n', totalCost);

你可以考慮一個提示:一組“ if-elseif-else ”語句可以有多個elseif

這似乎是一種略顯笨拙的方法,但如果你必須在一個if-elseif-else語句中執行它,這是實現它的一種方法:

% Check for the correct amount of nuts, bolts, and washers
if (nuts < bolts) && (washers < 2*bolts)
    disp('Check order: too few washers');
    disp('Check order: too few nuts');
elseif washers < 2*bolts
    disp('Check order: too few washers');
elseif nuts < bolts
    disp('Check order: too few nuts');
else
    disp('Order is OK.');
end

您有很多選擇來解決上述問題。 您可以在if內部使用if來檢查條件,或者如@nispio所述,您可以編寫程序。 由於@nispio已經說過其中一個解決方案,我將說明另一個。 可能這不是一個合適的答案,因為我使用了多個if else語句!

bolts = input('Enter the number of bolts: ');
nuts = input('Enter the number of nuts: ');
washers = input('Enter the number of washers: ');

if bolts > nuts
    fprintf('Check order: Too few nuts\n');
    if 2*washers < bolts
        fprintf('Check order: Too few washers\n');
    end
elseif 2*washers < bolts
    fprintf('Check order: Too few washers\n');
else
    fprintf('Order is OK.');
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM