While loop with if function
显示 更早的评论
Hi, need some help on whie loop and if function.
E.g,
Amount =$1-500
type = a or b
How should I write in mathlab, if I wan if the amount between 1-500 and if the type is "a" then show the 'a" result else showing "b" result. And after that will ask whether user want to continue the process or not.
采纳的回答
if 1 <= amount & amount <= 500 & strcmp(type, 'a')
9 个评论
Thanks Walter, what if in the end I need to ask whether user whether wan to continue input or not, may I know how to do it?
eg,
After the function and showed out the result, I will ask a question that whether user want to continur or not, if 'Y' then continue to input, and if 'N' then exit.
want_to_continue = input('Would you like to continue? Y|[N] ', 's');
and now you can strcmp() or strcmpi()
Thanks Walter, will try it out.
while true
if strcmpi(purchase_type, "D") && purchase_amount >= 0 && purchase_amount <=250
discount = 0.95;
net_amount = purchase_amount*discount;
break;
elseif strcmpi(purchase_type, "D") || strcmpi(purchase_type, "L")
discount = 0.9;
net_amount = purchase_amount*discount;
break
else
purchase_type = input("Enter type of purchase (L for type L/ D for Type D):","s");
end
end
Hi Walter, thanks for your quick response, I had tried your code and its working perfectly, may I have 1 more question. If I want to ask user input after every result was printed out, may I know where should I add into?
E.g,
result:
name: jamal
address: USA
net amount: 100
Do you wish to continue?: (userinput) if yes then continue the loop, if no then exit.
while true
do all you stuff
cont = input('Do you wish to continue?: (userinput) if yes then continue the loop, if no then exit. ', 's')
if ~strcpmi(cont, 'y') && ~strcmpi(cont, 'yes')
break;
end
end
This considers anything other than y or yes to be no.
Hi Walter, the following is my code, and it worked great for now, but I still have no idea where should I input the question once the result is printed out. Because each time it prined out then just stop.
clc;
clear;
name = input("Enter name:","s");
address = input("Enter address:","s");
purchase_amount = input("Enter amount of purchase:");
purchase_type = input("Enter type of purchase (L for type L/ D for type D):","s");
while true
if strcmpi(purchase_type, "D") && purchase_amount >= 0 && purchase_amount <= 250
discount = 0.95;
net_amount = purchase_amount*discount;
break
elseif strcmpi(purchase_type, "D") && purchase_amount >= 251 && purchase_amount <= 570
discount = 0.924;
net_amount = purchase_amount*discount;
break
elseif strcmpi(purchase_type, "D") || strcmpi(purchase_type, "L")&& purchase_amount >= 0 && purchase_amount <= 250
discount = 1;
net_amount = purchase_amount*discount;
break
elseif strcmpi(purchase_type, "D") || strcmpi(purchase_type, "L")&& purchase_amount >= 251 && purchase_amount <= 570
discount = 0.95;
net_amount = purchase_amount*discount;
break;
else
fprintf ("Invalid type.\n")
prompt = input("Do you wish to continue to purchase (Y for Yes/ N for No):","s");
if strcmpi(prompt, "Y") == true
name = input("Enter name:","s");
address = input("Enter address:","s");
purchase_amount = input("Enter amount of purchase:");
purchase_type = input("Enter type of purchase (L for type/ D for typed):","s");
else
fprintf ("Goodbye.\n")
end
end
end
fprintf("Name: %s\n",name);
fprintf("Address: %s\n",address);
fprintf("Net Amount: $%d\n",net_amount);
while true
name = input("Enter name:","s");
address = input("Enter address:","s");
purchase_amount = input("Enter amount of purchase:");
purchase_type = input("Enter type of purchase (L for type L/ D for type D):","s");
fail = false;
if strcmpi(purchase_type, "D") && purchase_amount >= 0 && purchase_amount <= 250
discount = 0.95;
net_amount = purchase_amount*discount;
elseif strcmpi(purchase_type, "D") && purchase_amount >= 251 && purchase_amount <= 570
discount = 0.924;
net_amount = purchase_amount*discount;
elseif strcmpi(purchase_type, "D") || strcmpi(purchase_type, "L")&& purchase_amount >= 0 && purchase_amount <= 250
discount = 1;
net_amount = purchase_amount*discount;
elseif strcmpi(purchase_type, "D") || strcmpi(purchase_type, "L")&& purchase_amount >= 251 && purchase_amount <= 570
discount = 0.95;
net_amount = purchase_amount*discount;
else
fprintf ("Invalid type.\n")
fail = true;
end
if ~fail
fprintf("Name: %s\n",name);
fprintf("Address: %s\n",address);
fprintf("Net Amount: $%d\n",net_amount);
end
prompt = input("Do you wish to continue to purchase (Y for Yes/ N for No):","s");
if ~strcmpi(prompt, 'Y')
break;
end
end
fprintf("Goodbye.\n");
Hi Walter, thank you very much, the code worked perfectly, really appreciate your help.
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
