Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/08/2012, 19:05
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: Bucle For-While(conveniencias)

Hola.

En algunos lenguajes la diferencia entre usar for y while es significativa ya que el segundo puede evaluar la condición antes de entrar al ciclo y el primero está limitado a iterar desde un valor inicial a uno final, por otro lado el for ejecutará al menos una vez el ciclo.
Esta diferencia es totalmente nula en C/C++ ya que en estos, el for es una estructura muchísimo mas versátil.

Se puede comprobar con un simple ejemplo:
Código C++:
Ver original
  1. #include<iostream.h>
  2.  
  3. using namespace std;
  4. int main(){
  5.   int c = 0;
  6.   /* while verifica al inicio, no ingresa al ciclo */
  7.   while (c > 0) {
  8.     cout << "Entre al while";
  9.     c--;
  10.   }
  11.   /* for verifica al inicio, no ingresa al ciclo */
  12.   for(; c > 0; c--) cout << "Entre al for";
  13.  
  14.   cin.get();
  15.   return 0;
  16. }
En ningún caso se entra al ciclo.

Particularmente cuando se conoce el valor incial y el final de un ciclo, me parece mucho mas claro el uso de for, de otro modo el while. Por supuesto es una apreciación personal.

En cuanto a la performance no hay diferencias significativas, esto se puede comprobar compilando con salida a assembler y comparando los códigos resultantes.

Un saludo.