2009-10-03 10 views
6

sé un bucle while puede hacer cualquier cosa un bucle for puede, pero un bucle for puede hacer nada mientras que un bucle lata?Ejemplo de un ciclo Mientras que no puede ser un bucle For

Sírvanse proporcionar un ejemplo.

+2

Totalmente depende del lenguaje de programación. Un verdadero for-loop no puede. – jpfollenius

+1

Suponiendo un lenguaje con números enteros sin límites y un "real para-loop", como dice Smasher, y como todos los que citó mal entendido C - peor, creo que son graves -, tenga en cuenta el cálculo de la primera primo mayor que un entero dado n . Sé cómo hacerlo con while-loops. ¿Puedes hacerlo solo con for-loops? –

+0

Al usar la frase "real for loop" construyes una tautología. Un "bucle real" es un ciclo while lisiado, y por lo tanto es menos capaz, pero no has aprendido nada del ejercicio. – dmckee

Respuesta

16

Sí, fácilmente.

while (cond) S; 

for(;cond;) S; 
+2

También puedo agregar que esto se aplica en C, C++, Java, C# y probablemente en muchos otros lenguajes que toman prestado mucho de C, pero no se aplica en, p. Pascal. – Steve314

+1

Lo que me gusta de esta respuesta es que demuestra simultáneamente que se puede hacer y por qué es inútil. –

0

En lenguajes como C, puede declarar para los bucles como esto:

for(; true;) 
{ 
    if(someCondition) 
     break; 
} 

En lenguajes donde for es más estricta, bucles infinitos habría un caso que requiera un bucle while.

3

El while bucle y la clásica for bucle son intercambiables:

for (initializer; loop-test; counting-expression) { 
    … 
} 

initializer 
while (loop-test) { 
    … 
    counting-expression 
} 
1

Si tenemos un fijo atado y paso y no permitir la modificación de la variable de bucle en el cuerpo del bucle, a continuación, para los bucles corresponden a primitivas funciones recursivas

Desde un punto de vista teórico éstos son más débiles que en general, mientras que los bucles, por ejemplo, no se puede calcular la función de Ackermann únicamente con tal de bucles.

Si puede proporcionar un límite superior para la condición en un bucle while para convertirse en realidad se puede convertir a un bucle. Esto muestra que en un sentido práctico no hay diferencia, ya que puede proporcionar fácilmente un límite astronómicamente alto, por ejemplo, más largo que la vida del universo.

0

While loop no tiene tanta flexibilidad como for loop tiene y para los bucles son más legibles que los bucles while. Yo demostraría mi punto con un ejemplo. Un bucle puede tener forma que:

for(int i = 0, j = 0; i <= 10; i++, j++){ 
// Perform your operations here. 
} 

Un bucle while no se puede utilizar como el anterior para el bucle y hoy más lenguas modernas permitir que un for each loop también.

En mi opinión, podría ser parcial, por favor, perdonen por eso, uno no debe usar while loop, siempre que sea posible escribir el mismo código con for loop.

Cuestiones relacionadas