Borrar filtros
Borrar filtros

while loop with a boolean expression

13 visualizaciones (últimos 30 días)
mazari ahmed
mazari ahmed el 20 de Mzo. de 2015
Respondida: mazari ahmed el 9 de Abr. de 2015
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

Respuesta aceptada

Image Analyst
Image Analyst el 20 de Mzo. de 2015
Don't even use v. Just break:
while (i < N)
if (condition)
break;
end
i=i+1;
end

Más respuestas (2)

Stephen23
Stephen23 el 20 de Mzo. de 2015
Editada: Stephen23 el 20 de Mzo. de 2015
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 el 9 de Abr. de 2015
problem solved

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by