Я попытался дать вам идею как можно проще в моем комментарии к вашему вопросу. Это должно ответить на ваш вопрос. У вас есть и другие ответы, хотя некоторые из них довольно расплывчаты по сравнению с вашим уровнем понимания.
Ради полноты и для пояснения использования for
(или любого другого цикла) я расширяю идею в этом ответе настолько просто, насколько это возможно.
for
- это сокращенный синтаксис для многократного выполнения операторов. Код в вашем вопросе может быть написан без этого сокращенного синтаксиса как:
/// checkpoint #1: variable initialization
var num = 1
/// checkpoint #2: condition checking
if num <= 10000000 { //condition true
if num == 10000000 { //at this point, num equals to 1, so condition is false
print("why does this print") //doesn't execute
}
/// checkpoint #3: increment value of the variable
num = num + 1 //at this point, num equals to 2
}
if num <= 10000000 { //condition true
if num == 10000000 { //at this point, num equals to 2, so condition is false
print("why does this print") //doesn't execute
}
num = num + 1 //at this point, num equals to 3
}
if num <= 10000000 { //condition true
if num == 10000000 { //at this point, num equals to 3, so condition is false
print("why does this print") //doesn't execute
}
num = num + 1 //at this point, num equals to 4
}
. . .
// upto the point where the above repeated lines reach 10000000 if counted
. . .
if num <= 10000000 { //condition true
if num == 10000000 { //at this point, num equals to 10000000, so condition is true
print("why does this print") //this time it executes
}
num = num + 1 //at this point, num equals to 10000000 + 1
}
if num <= 10000000 { //condition false
//doesn't execute anything inside this conditional block
if num == 10000000 {
print("why does this print")
}
num = num + 1
}
// this is the termination point if loop was used
//after executing the previous statements, this line will be executed
print("before this prints")
Как программисты, мы умны идентифицировать повторяющиеся утверждения. И мы достаточно умны, чтобы сделать приведенный выше код короче и проще. Это когда мы вводим loop
. Найдите повторяющийся блок и поместите их в петлю.
Вы заметили повторяющиеся утверждения выше? Давайте поместим это здесь еще раз:
if num <= 10000000 {
if num == 10000000 {
print("why does this print")
}
num = num + 1
}
Посмотрите этот код в Swift :
for num in 1...10000000 {
if num == 10000000 {
print("why does this print")
}
}
print("before this prints")
может быть написано на другом языке (скажем, C ):
for(int num = 1; num <= 10000000; num++) {
if(num == 10000000) {
printf("why does this print");
}
}
printf("before this prints");
Указанный выше цикл в C можно разбить на части, которые вы можете сравнить с контрольными точками, которые я упомянул в первом блоке кода:
for(int num = 1/*checkpoint #1*/; num <= 10000000/*checkpoint #2*/; num++/*checkpoint #3*/)
Теперь, когда контрольные точки удовлетворяются синтаксисом самого цикла for
, единственной оставшейся частью является:
if num == 10000000 {
print("why does this print")
}
И вы помещаете эту часть в фигурные скобки { ... }
for
петли.
Я надеюсь, что это обширное объяснение должно дать вам общее представление о цикле. И теперь вы должны понимать поток управления выполнения кода.