53 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Loops
 | |
| localeTitle: Loops
 | |
| ---
 | |
| # Для цикла в Go
 | |
| 
 | |
| Go имеет только `for` цикла. Базовый `for` цикла имеет три компонента, разделенных `;` -
 | |
| 
 | |
| *   инструкция **init** : выполняется перед первой итерацией
 | |
|     
 | |
| *   выражение **условия** : оценивается перед каждой итерацией
 | |
|     
 | |
| *   **сообщение post** : выполняется в конце каждой итерации
 | |
|     
 | |
| 
 | |
| Оператор **init** часто является коротким объявлением переменной. Объявленные там переменные видны только в области оператора `for` . Цикл прекращает итерацию после того, как логическое условие оценивается как false.
 | |
| 
 | |
| Пример цикла `for` приведен ниже:
 | |
| 
 | |
| **for.go**
 | |
| 
 | |
| ```go
 | |
| package main 
 | |
|  
 | |
|  import "fmt" 
 | |
|  
 | |
|  func main() { 
 | |
|     sum := 0 
 | |
|     for i := 0; i <= 10; i++ { 
 | |
|         sum += i 
 | |
|     } 
 | |
|     fmt.Println("The sum of first 10 natural numbers is", sum) 
 | |
|  } 
 | |
| ```
 | |
| 
 | |
| Выполнение вышеуказанной программы дает результат, похожий на следующий вывод - \`\` \`  
 | |
| $ go run for.go Сумма первых 10 натуральных чисел равна 55
 | |
| ```
 | |
| You can use `continue` and `break` to adjust the loops flow 
 | |
| ```
 | |
| 
 | |
| идти // этот код печатает любые нечетные числа до 5 для n: = 0; n <= 10; n ++ { если n% 2 == 0 { // если число равнозначно переходить к следующему n Продолжать } fmt.Println (п) // если число 5 выходит из цикла если n == 5 { перерыв } }
 | |
| ```
 | |
| If you want to create an infinite loop just use `for { }` 
 | |
| ```
 | |
| 
 | |
| идти за { // Whill loop, пока условие не прерывает цикл break // выйти из цикла }
 | |
| ```
 | |
| ## Replacement for while-loop 
 | |
|  To simulate while-loop of other languages, you can simply exclude the **init** and **post** statement: 
 | |
| ```
 | |
| 
 | |
| идти func main () { num: = 1 для num <= 1000 { num \* = 2 } fmt.Println («Наименьшая мощность 2 над 1000 равна», num) } \`\` \` |