Entry Level Exam Question

What does the following code display?
V=[2 4 6 8];
for V = 1:2:5
if V>=3
disp('yes')
else
disp('no')
end
end
disp(V);
I know the output is:
no
yes
yes
5
But I'm not sure why. What determines the yes and no answers, and why does the value of V become 5? Any help?

1 件のコメント

phillip kataswa
phillip kataswa 2020 年 3 月 31 日
The last number to iterate thorough the loop is 5. I think that instead of displaying the whole vector V
V is automatically changed to a scaler vector and only stores the last number that iterates through the loop.

サインインしてコメントする。

回答 (2 件)

Walter Roberson
Walter Roberson 2013 年 3 月 7 日

0 投票

Try this:
X = 999;
for X = 777; end
disp(X)

2 件のコメント

Brian C
Brian C 2013 年 3 月 7 日
So, is it completely rewriting the value of X?
Walter Roberson
Walter Roberson 2013 年 3 月 7 日
Yes.

サインインしてコメントする。

Image Analyst
Image Analyst 2013 年 3 月 7 日
編集済み: Image Analyst 2013 年 3 月 7 日

0 投票

The first V you made is essentially thrown away and never used.
V=[2 4 6 8]; % Never used at all.
When you do this:
for V = 1:2:5
you're saying that, in the loop, you want V to take on values 1, 3, and 5. It means (startvalue):(stepValue):(endingValue). After the loop, V retains its last value of 5 and that's what you print out.

1 件のコメント

Brian C
Brian C 2013 年 3 月 7 日
Got it, Thanks.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

2013 年 3 月 7 日

コメント済み:

2020 年 3 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by