Explain this please?

1 回表示 (過去 30 日間)
Anne Nguyen
Anne Nguyen 2019 年 10 月 14 日
回答済み: Steven Lord 2019 年 10 月 14 日
x = 2;
e = 2.713;
c = 5 + (x < 2 || (e < pi));
c = 6
How does the value of c=6 after the code is executed? 2 is not less than 2, while e is not less than pi, so that is throwing me off. Thank you!
  2 件のコメント
Mil Shastri
Mil Shastri 2019 年 10 月 14 日
e = 2.713
pi = 3.1416
thus, (e < pi) indeed is true
Walter Roberson
Walter Roberson 2019 年 10 月 14 日
But e is less than pi. 2.713 < 3.14159265358979323 [etc]

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

採用された回答

Steven Lord
Steven Lord 2019 年 10 月 14 日
c = 5 + (x < 2 || (e < pi));
Let's look at each section of the code inside the outer parentheses in turn.
x < 2
Since x is equal to 2, x < 2 is false.
(e < pi)
Since e is less than pi, this returns true. [By the way, you can use exp(1) to return the value of the constant e.]
(false || true)
This results in true.
So what is 5 + true? For many intents and purposes in MATLAB, you can think of false like 0 and true like 1. Indexing is the main exception; you can't index into an array with 0 but you can with false. [Search the documentation for "logical indexing" for more information on this.] So 5 + true is essentially 5 + 1 which results in 6.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by