while loop with a boolean expression

31 ビュー (過去 30 日間)
mazari ahmed
mazari ahmed 2015 年 3 月 20 日
回答済み: mazari ahmed 2015 年 4 月 9 日
why my boolean expression is not working , is there any syntax error. here is my code :
v=false;
while ((i < N)&&(v==false)) if (condition) v=true; i=i+1; else i=i+1; end end

採用された回答

Image Analyst
Image Analyst 2015 年 3 月 20 日
Don't even use v. Just break:
while (i < N)
if (condition)
break;
end
i=i+1;
end

その他の回答 (2 件)

Stephen23
Stephen23 2015 年 3 月 20 日
編集済み: Stephen23 2015 年 3 月 20 日
A few tips:
  • v==false is rather awkward code, as the while operation requires a logical value: v is already a logical value, so instead of doing this round-about numeric comparison, why not just use the simplest form of ~v instead?
  • Do not use i or j as loop variables names, as these are the names of the inbuilt imaginary unit.
  • Using the else statement and repeating the code that increments the loop variable could be replaced by simply incrementing the variable once after the if statement.
  • the if statement does nothing useful: why not just define v directly using condition?
Altogether we get this:
v = false;
while k<N && ~v
v = ~condition;
k = k+1;
end
which we can then simplify be noting that everywhere ~v is used can simply be condition instead:
condition = true;
while k<N && condition
k = k+1;
end

mazari ahmed
mazari ahmed 2015 年 4 月 9 日
problem solved

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by