Do while loop in Matlab

1.336 visualizaciones (últimos 30 días)
UTS
UTS el 9 de Feb. de 2014
Respondida: Marco Ottina el 15 de Dic. de 2022
Could you please let me know the Matlab code that is similar to C++ code as shown below:
do {
<your calculations>
} while (abs(A - B) <= 50)
Thanks
  2 comentarios
Jan
Jan el 9 de Feb. de 2014
This is no valid C++syntax. Do you mean:
do {
<your calculations>
} while (abs(A - B) <= 50)
MathWorks Support Team
MathWorks Support Team el 27 de Nov. de 2018
We updated the question to reflect correct syntax

Iniciar sesión para comentar.

Respuesta aceptada

Mischa Kim
Mischa Kim el 9 de Feb. de 2014
Editada: MathWorks Support Team el 27 de Nov. de 2018
There is no 1-to-1 correspondence to the C++ do while loop in MATLAB. Your best option is to use a while loop. The difference is that while loops check the condition at the beginning of the loop while do while loops check the condition at the end of the loop.
while (abs(A-B) <= 50)
...
end
To check the condition at the end of the loop using a while loop, use an if statement inside the while loop:
while 1
<your calculations>
if ~(abs(A - B) <= 50)
break;
end
end
  2 comentarios
UTS
UTS el 9 de Feb. de 2014
Thank you very much,
Image Analyst
Image Analyst el 9 de Feb. de 2014
Please mark his answer as "Accepted" so we know that we don't need to look at it anymore and he gets credit for it.

Iniciar sesión para comentar.

Más respuestas (3)

Jos (10584)
Jos (10584) el 9 de Feb. de 2014
A do-while loop in disguise:
while true
% statements here
% if ~WhileCondition, break ; end
end
or
  3 comentarios
Seyedeh Razieh Hosseini
Seyedeh Razieh Hosseini el 5 de En. de 2019
The problem here is that you have to calculate twice. our calculation have to be done once before the loop and again inside the loop. that leads to repetition of a part of a code. what should we do in such a case?
David Michelman
David Michelman el 1 de Mayo de 2020
How so? Since do always starts out as true, you only have to write out the calculation once?

Iniciar sesión para comentar.


Marco Ottina
Marco Ottina el 15 de Dic. de 2022
My suggestion is using the following pattern:
canContinue = true;
while canContinue
% do your code here
canContinue = condition_of_the_do_while ; % insert here your condition
end

Vigneshwar Pesaru
Vigneshwar Pesaru el 17 de Sept. de 2017
Hi!!!
There is no 'do while' loop in MATLAB in fact you can perform the similar action using 'while' which is powerful in MATLAB
  1 comentario
P Richards
P Richards el 23 de Jul. de 2019
IHMO The absence of do while makes some coding more difficult than it needs to be:
do
theConditionStillExists=attemptToFixIt();
while theConditionStillExists

Iniciar sesión para comentar.

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