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.

 채택된 답변

Walter Roberson
Walter Roberson 2021년 1월 30일

0 개 추천

if 1 <= amount & amount <= 500 & strcmp(type, 'a')

댓글 수: 9

Ken L
Ken L 2021년 1월 30일
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()
Ken L
Ken L 2021년 1월 31일
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
Ken L
Ken L 2021년 2월 1일
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");
Ken L
Ken L 2021년 2월 2일
Hi Walter, thank you very much, the code worked perfectly, really appreciate your help.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2021년 1월 30일

댓글:

2021년 2월 2일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by