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) } \`\` \` |