60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Loops
 | |
| localeTitle: Bucles
 | |
| ---
 | |
| # Bucles
 | |
| 
 | |
| Dentro de Rust hay tres tipos de mecanismos de bucle nativos: `loop` , `while` y `for` .
 | |
| 
 | |
| ## Repetición infinita con `loop`
 | |
| 
 | |
| En Rust, la estructura de `loop` ejecutará continuamente un bloque de código ad infinitum (o hasta que le indique explícitamente que se detenga).
 | |
| 
 | |
| Aquí hay un programa de ejemplo que usa `loop` para imprimir la palabra 'otra vez' continuamente al terminal:
 | |
| 
 | |
| ```rust
 | |
| fn main() { 
 | |
|     loop { 
 | |
|         println!("again!"); 
 | |
|     } 
 | |
|  } 
 | |
| ```
 | |
| 
 | |
| ## Bucle condicional con `while`
 | |
| 
 | |
| El mecanismo anterior no es muy útil a menos que introduzcamos algún tipo de condición de detención para que el `loop` verifique. Por suerte, Rust tiene una estructura de bucle incorporada llamada `while` , que puedes usar para ejecutar continuamente un bloque de código mientras que alguna condición es verdadera.
 | |
| 
 | |
| Aquí hay un programa de ejemplo que usa `while` para contar desde 5:
 | |
| 
 | |
| ```rust
 | |
| fn main() { 
 | |
|     let mut number = 5; 
 | |
|  
 | |
|     while number != 0 { 
 | |
|         println!("{}", number); 
 | |
|         number = number - 1; 
 | |
|     } 
 | |
|  } 
 | |
| ```
 | |
| 
 | |
| Ejecuta el código [aquí](https://play.rust-lang.org/?gist=62677371a8590be27c84dcae7068de57&version=stable) .
 | |
| 
 | |
| ## Iterando a través de una colección con `for`
 | |
| 
 | |
| En algunos casos, es posible que desee iterar y operar en los elementos de una colección (como una matriz). Mientras que usted podría lograr esto usando un `while` de bucle y una variable índice para acceder a cada elemento, Rust ofrece el `for` bucle para hacer esta operación mucho más fácil.
 | |
| 
 | |
| Aquí hay un programa de ejemplo que imprime cada número en una matriz al terminal usando `for` :
 | |
| 
 | |
| ```rust
 | |
| fn main() { 
 | |
|     let collection = [15, 7, 2, 6, 9]; 
 | |
|  
 | |
|     for element in collection.iter() { 
 | |
|         println!("the value is: {}", element); 
 | |
|     } 
 | |
|  } 
 | |
| ```
 | |
| 
 | |
| Ejecuta el código [aquí](https://play.rust-lang.org/?gist=0c2acf21b96a81ebd411e4a7dc5a19fd&version=stable) .
 | |
| 
 | |
| Al igual que los iteradores en C ++, la función `.iter()` devuelve un iterador a la `collection` , que luego se puede recorrer para acceder a cada `element` . Para obtener más información, diríjase a la documentación de Rust sobre el [flujo de control](https://doc.rust-lang.org/book/second-edition/ch03-05-control-flow.html) . |