Menu
Coddy logo textTech

Conversion de types

Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 34 sur 86.

Puisque readLine() renvoie un String?, vous devrez souvent convertir cette chaîne en un nombre pour effectuer des calculs. Swift nécessite une conversion de type explicite — il ne transformera pas automatiquement une chaîne en un entier ou un double.

Pour convertir une chaîne de caractères en un entier, utilisez l'initialiseur Int(). Comme la conversion peut échouer (la chaîne pourrait contenir des lettres au lieu de chiffres), elle renvoie un optionnel :

let input = "42"
if let number = Int(input) {
    print(number + 10) // Résultat: 52
}

Pour les nombres décimaux, utilisez Double() :

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Résultat : 39.98
}

C'est particulièrement utile pour combiner readLine() avec des opérations numériques. Vous pouvez enchaîner le déballage (unwrapping) :

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

La virgule dans l'instruction if let signifie que les deux conditions doivent réussir — l'entrée doit exister et elle doit être convertible en un entier.

challenge icon

Défi

Facile

Lisez deux entrées : un nombre décimal sous forme de chaîne de caractères et un entier sous forme de chaîne de caractères. Convertissez-les dans leurs types numériques appropriés et calculez leur produit.

Vous recevrez les entrées suivantes :

  • Première ligne : Un nombre décimal (par exemple, "3.5")
  • Deuxième ligne : Un entier (par exemple, "4")

Utilisez readLine() pour lire les deux entrées. Convertissez la première entrée en un Double et la seconde en un Int. Ensuite, multipliez-les ensemble et affichez le résultat.

Utilisez if let avec un chaînage de liaisons optionnelles (optional binding) pour déballer en toute sécurité à la fois l'entrée et la valeur convertie.

Affichez : Le produit des deux nombres sous forme de Double

Aide-mémoire

Swift nécessite une conversion de type explicite entre les chaînes de caractères et les nombres.

Pour convertir une chaîne en un entier, utilisez Int(). Cela renvoie un optionnel car la conversion peut échouer :

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

Pour convertir une chaîne en un nombre décimal, utilisez Double() :

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

Vous pouvez enchaîner le déballage d'optionnels avec readLine() en utilisant une virgule dans if let. Les deux conditions doivent réussir :

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

Essayez vous-même

// Lire le nombre décimal sous forme de chaîne
if let decimalString = readLine() {
    // Lire l'entier sous forme de chaîne
    if let intString = readLine() {
        // TODO: Écrivez votre code ci-dessous
        // Convertir decimalString en Double et intString en Int en utilisant if let
        // Ensuite, calculer et afficher leur produit
        
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux