English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本文中,您将了解for-Neste artigo, você aprenderá sobre for
Exemplos de uso e variações do loop in-for
in loop para executar um conjunto de tarefas em um período de tempo fixo. Esses loops percorrem qualquer sequência, como itens em um array, ranges ou caracteres em uma string.-Também usamos for
loop in?
print("Olá, Mundo!")
Imaginem que alguém te pediu para escrever um programa que imprima Hello,World!na tela! Sua solução seria:
print("Olá, Mundo!") print("Olá, Mundo!") print("Olá, Mundo!") print("Olá, Mundo!") print("Olá, Mundo!")
Bem, parece que demora muito para completar cinco vezes o mesmo código para fazer o mesmo trabalho. Se for assim, se alguém pedir que você escreva um programa que imprima Hello,World!na tela várias vezes, o que você fará? Se eles mudarem de ideia e disserem que você deve escrever um programa que imprima Hello,World!na tela cinco vezes, o que fazer? Se você não souber sobre loops, sua solução pode ser:
Uma solução ingênua seria escrever uma sentença print várias vezes. Parece louco, mas usando for-Algumas linhas de código do loop in, que podem encontrar uma solução melhor:
for i in 1...100 { //Imprimir Hello World na tela 100 vezes print("Olá, Mundo!") }
Não se preocupe com a sintaxe, discutiremos isso abaixo.
Você pode criar um loop for in no Swift assim:
for <value> in <range> { <some work here> }
O loop acima percorre uma faixa, e podemos acessar cada elemento retornado da faixa na variável <value>. Se você não entender ranges, pode consultar o seguinte artigo:Faixas do Swift.
A sequência iterada é uma <range>.
Define <value> como o primeiro número da faixa e executa a sentença dentro do loop < Alguns trabalhos aqui >
Após a execução da sentença, <value> é atualizado para conter o segundo valor da <range>, e a sentença <Alguns trabalhos aqui> é executado novamente.
Este processo continua até alcançar o final da faixa e parar o loop.
for i in 1...3 . print("Olá mundo!. Valor é \(i)") }
Quando o programa é executado, a saída é:
Olá mundo!. Valor é 1 Olá mundo!. Valor é 2 Olá mundo!. Valor é 3
No programa acima, a faixa da sequência que será iterada é1(.. <),portanto, o intervalo da sequência a ser percorrida é3.
O valor de i é configurado para a faixa (1o primeiro número dentro do bloco ), e é atualizado para o próximo número da faixa em cada iteração. Este processo continua até a faixa (3. Fim do bloco ).
Iteração | O valor retornado da faixa (i) | Saída |
---|---|---|
1 | 1 | Olá mundo!. O valor é 1 |
2 | 2 | Olá mundo!. O valor é 2 |
3 | 3 | Olá mundo!. O valor é 3 |
Se você não usar valores de intervalo dentro do loop, pode usar (sublinhado _) descartar em Swift, conforme mostrado a seguir:
for _ in <range> { <some work here> }
//Este exemplo ignora o valor e usa o operador de intervalo semi-aberto for _ in 1..<3 . { }
Quando o programa é executado, a saída é:
print("Hello world!") print("Hello world!")
Hello world!No programa acima, devido ao usooperador de intervalo semi-aberto1(.. <),portanto, o intervalo da sequência a ser percorrida é2até1que inclui o limite inferior (3) mas não inclui o limite superior (
sublinhado _ ignora o intervalo (1) e execute a sentença print. Chame novamente a sentença print para a próxima iteração e o processo termina porque2é o último valor dentro do intervalo.
Iteração | valores retornados do intervalo | Saída |
---|---|---|
1 | descartar | Hello world! |
2 | descartar | Hello world! |
Se você deseja que o loop aumente em um valor fixo (em vez de um intervalo) em cada iteração, você deve usar o método stride.
let intervalo = 2 for i in stride(from: 1, to: 10, by: intervalo) { print(i) }
Quando o programa é executado, a saída é:
1 3 5 7 9
No programa acima, a função stride retorna a sequência de números:1、3、5、7、9.
o valor de i é configurado para a sequência (1) do primeiro número, e execute a sentença print dentro do loop, que imprime " 1"
Após executar esta sentença, atualize o valor de i para outro valor (3))), e novamente chame a sentença print. Este processo continua até que todos os elementos da sequência sejam acessados.
valor | condição (Valor < Fim) | i (saída) |
---|---|---|
1 | 1 < 10 (true) | 1 |
1 + 2 = 3 | 3 < 10 (true) | 3 |
1 + 2 * 2 = 5 | 5 < 10 (true) | 5 |
1 + 3 * 2 = 7 | 7 < 10 (true) | 7 |
1 + 4 * 2 = 9 | 9 < 10 (true) | 9 |
1 + 5 * 2 = 11 | 11 < 10 (false) | Stops |
Suponha que você tenha um array de strings, conforme mostrado a seguir. Se você não conhece arrays, pode considerar arrays como um único contêiner que pode armazenar múltiplos valores. Para mais detalhes, consulteArray de Swift.
let programaçãoLanguages = ["Swift", "Java", "Go", "JavaScript", "Kotlin", "Python"]
O que fazer se alguém te disser para imprimir todos os idiomas de programação?
Um método é usar o índice de programaçãoLanguages[0], programaçãoLanguages[1]... para acessar esses elementos, e assim por diante, até que todos os elementos sejam obtidos. Isso é muito tedioso.
Portanto, o loop é útil. Você pode usar o loop for in para iterar:
let programmingLanguages = ["Swift", "Java", "Go", "JavaScript", "Kotlin", "Python"] for language in programmingLanguages { print(language) }
Quando o programa é executado, a saída é:
Swift Java Go JavaScript Kotlin Python
No programa acima, a sequência a ser iterada é um array de strings.
O valor de language é configurado como o primeiro elemento do array e a sentença print dentro do loop é executada,输出的内容为“ Swift” no console.
Após a execução da sentença, o valor de language será atualizado para o próximo elemento do array e a sentença print será chamada novamente. Este processo continua até que o último elemento do array seja acessado.
Devido ao SwiftStringTambém é uma coleção, então você pode usar o loop for para acessar cada caractere na string.
for value in "I♥Swift!" { print(value) }
Quando o programa é executado, a saída é:
I ♥ S w i f t !
Se você quiser acessar o índice do array (a posição do elemento no array, ou seja, 0,1、2),então você precisa usar o método enumerated:
let programmingLanguages = ["Swift", "Java", "Go", "JavaScript", "Kotlin", "Python"] for (index, language) in programmingLanguages.enumerated() { print("\(index):\(language)") }
Quando o programa é executado, a saída é:
0:Swift 1:Java 2:Go 3:JavaScript 4:Kotlin 5:Python
Aqui, o método enumeira retorna um tuplo (Int, String) composto por índice (Int) e valor (String) de cada item no array. Por exemplo: (0,Swift), (1,Java)
Usando for-no loop in, você pode acessar individualmente esses itens no tuplo. Se você não conhece o Tuplo (tupla), pode simplesmente vê-lo como um contêiner que pode conter valores de diferentes tipos.
Você também pode usarwhereA cláusula where remove o conteúdo do loop for
for value in "I♥Swift!" where value != "!" { print(value) //Remover o exclamador }
Quando o programa é executado, a saída é:
I ♥ S w i f t
Na programação acima, a sequência a ser iterada é a string (conjunto de caracteres).
O value é configurado como o primeiro caractere da string e verificado com a condição where. Se a condição retornar true, o bloco dentro do loop será executado (sentença de impressão), que imprime “I” no console de controle.
Após a execução da sentença, o value será atualizado para o próximo caractere da string e novamente verificado a condição. Se a condição retornar false, o bloco não será executado e o value será atualizado para o próximo caractere.
Este processo continua até que seja acessado o último caractere da string.
Iteração | value | value != “!” | Saída |
---|---|---|---|
1 | I | true | I |
2 | ♥ | true | ♥ |
3 | S | true | S |
4 | w | true | w |
5 | i | true | i |
6 | f | true | f |
7 | t | true | t |
8 | ! | false |