Menu
Coddy logo textTech

Conversão de Tipos

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 34 de 86.

Como o readLine() retorna um String?, você frequentemente precisará converter essa string em um número para realizar cálculos. O Swift exige conversão de tipo explícita — ele não transformará automaticamente uma string em um inteiro ou double.

Para converter uma string em um inteiro, use o inicializador Int(). Como a conversão pode falhar (a string pode conter letras em vez de dígitos), ela retorna um opcional:

let input = "42"
if let number = Int(input) {
    print(number + 10) // Saída: 52
}

Para números decimais, use Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Saída: 39.98
}

Isso é especialmente útil ao combinar readLine() com operações numéricas. Você pode encadear o desembrulhamento (unwrapping):

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

A vírgula na instrução if let significa que ambas as condições devem ser bem-sucedidas — a entrada deve existir e deve ser conversível para um número inteiro.

challenge icon

Desafio

Fácil

Leia duas entradas: um número decimal como uma string e um número inteiro como uma string. Converta-os para seus tipos numéricos apropriados e calcule o seu produto.

Você receberá as seguintes entradas:

  • Primeira linha: Um número decimal (ex: "3.5")
  • Segunda linha: Um número inteiro (ex: "4")

Use readLine() para ler ambas as entradas. Converta a primeira entrada para um Double e a segunda para um Int. Em seguida, multiplique-os e imprima o resultado.

Use if let com encadeamento de opcionais (chained optional binding) para desembrulhar com segurança tanto a entrada quanto o valor convertido.

Imprima: O produto dos dois números como um Double

Folha de consulta

Swift exige conversão de tipo explícita entre strings e números.

Para converter uma string em um número inteiro, use Int(). Ele retorna um opcional porque a conversão pode falhar:

let input = "42"
if let number = Int(input) {
    print(number + 10) // Saída: 52
}

Para converter uma string em um número decimal, use Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Saída: 39.98
}

Você pode encadear o desempacotamento de opcionais com readLine() usando uma vírgula em if let. Ambas as condições devem ser bem-sucedidas:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

Experimente você mesmo

// Lê o número decimal como uma string
if let decimalString = readLine() {
    // Lê o número inteiro como uma string
    if let intString = readLine() {
        // TODO: Escreva seu código abaixo
        // Converta decimalString para Double e intString para Int usando if let
        // Em seguida, calcule e imprima o produto deles
        
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos