Fechado vs Meio-Aberto
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 7 de 56.
O Swift tem dois operadores de intervalo que parecem quase idênticos, mas significam coisas diferentes.
a...b é o intervalo fechado. Ele inclui b:
for i in 1...3 { print(i) }
// 1
// 2
// 3a..<b é o intervalo semiaberto. Ele para antes de b:
for i in 1..<3 { print(i) }
// 1
// 2Meio-aberto é a escolha natural quando você tem uma contagem: 0..<arr.count abrange todos os índices válidos do array. Use fechado quando ambas as extremidades forem valores reais com os quais você se importa (como um intervalo de pontuação ou um limite de nota inclusivo).
Desafio
FácilLeia dois números inteiros (duas linhas): a e b, com a <= b. Imprima três linhas:
- Os valores no intervalo fechado
a...b, unidos com,em uma linha - Os valores no intervalo meio-aberto
a..<b, unidos com,(ou uma linha vazia quando o intervalo estiver vazio) - A soma de cada valor no intervalo fechado
Para a entrada 1 e depois 5, a saída é:
1,2,3,4,5
1,2,3,4
15Folha de consulta
Operadores de intervalo em Swift:
a...b— intervalo fechado, inclui tantoaquantoba..<b— intervalo semiaberto, incluia, mas para antes deb
for i in 1...3 { print(i) } // 1, 2, 3
for i in 1..<3 { print(i) } // 1, 2Use 0..<arr.count para cobrir todos os índices válidos do array. Use intervalos fechados quando ambos os limites forem valores significativos.
Experimente você mesmo
let a = Int(readLine()!)!
let b = Int(readLine()!)!
// TODO: imprimir o intervalo fechado unido, o intervalo semiaberto unido, a soma do intervalo fechado
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras