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.
採用された回答
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.
Walter Roberson
2021 年 1 月 30 日
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.
Walter Roberson
2021 年 2 月 1 日
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.
Walter Roberson
2021 年 2 月 1 日
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.
Ken L
2021 年 2 月 1 日
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);
Walter Roberson
2021 年 2 月 1 日
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!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の 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)
