While loop with if function
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
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
2021년 1월 30일
if 1 <= amount & amount <= 500 & strcmp(type, 'a')
댓글 수: 9
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
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
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
2021년 2월 2일
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)
