필터 지우기
필터 지우기

While or for loop?

조회 수: 2 (최근 30일)
Mark Coughlin
Mark Coughlin 2020년 4월 30일
편집: Mehmed Saad 2020년 4월 30일
Hi, I want to write a script which will evaluate the lowest factorial which is greater than the user's input, and I am unsure of whether to use a while or a for loop to execute this. Any help is always much appreciated! This is my code so far:
num=input('Enter a number: ');
n=0;
while (true)
n=n+1;
f(1i)=factorial(n);
if f(1i)>num
formatSpec='The factorial greater than %d is %d';
fprintf(formatSpec,num,f);
else
continue
end
end
  댓글 수: 1
Guillaume
Guillaume 2020년 4월 30일
Typically, you'd use a while loop if you don't know in advance how many times you're going to loop, and a for loop if you do. Therefore in your case, a while loop would be more appropriate.
However, note that you can always convert one to the other.

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

채택된 답변

Mehmed Saad
Mehmed Saad 2020년 4월 30일
  1. Use while loop
  2. instead of using if else and continue break in while(true), add condition in while loop
  3. Print after the while loop ends
PS: you need a break condition for a while(true) type loop otherwise it will continue runing forever
  댓글 수: 7
Mark Coughlin
Mark Coughlin 2020년 4월 30일
Thankyou very much Mehmed, your explanation was extremely informative and helpful. I realise the solution is a lot simplier than I initally thought. I got the code working.
num=input('Enter a number: ');
n=1;
while (f<=num)
n=n+1;
f=factorial(n);
end
formatSpec='The factorial greater than %d is %d';
fprintf(formatSpec,num,f);
Mehmed Saad
Mehmed Saad 2020년 4월 30일
편집: Mehmed Saad 2020년 4월 30일
Cheers.
Also when you ve problem in code apply break point approach first to detect problem as told by Rik.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by