Can someone help me with my if statements in my function?
조회 수: 1 (최근 30일)
이전 댓글 표시
I have written this function for a homework assignment, Basically finding heronian isosceles triangles for a given Perimeter. My if statements
if ((b>= 2*a)) && ((b<=0));
continue
end
if IntTestA == 0
a=0; b=0; A=0;
continue
end
are not working properly I was wondering if someone could explain to me why.
댓글 수: 1
Jan
2016년 5월 1일
편집: Jan
2016년 5월 1일
This is not twitter - tags do not need hash characters.
Before we can explain, why the code is not working "properly", we have to know, what you call "poperly". Note that all information we have is the "failing" code. And this code does exactly what its lines commands it to do. Due to the absence of comments, guessing your intention is risky.
채택된 답변
Jos (10584)
2016년 5월 1일
I quickly see three issues:
- a is always positive so b can never be both positive (>=2*a) and negative (<= 0).
- for A = sqrt(...) is a loop over a single value
- setting the iterator in a loop (a=0) does not effect the loop. See this example
for k=1:5
disp(k)
k = 5 ;
disp(k)
end
추가 답변 (1개)
Roger Stafford
2016년 5월 1일
Your test “IntTestP==0” does not accomplish what you think it does. The only way “fix((fix(P)-P)+1)” can be zero is for P to be a positive non-integer, and the further requirement that P<=0 is then impossible which means that the error message can never be issued.
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!