Menu
Coddy logo textTech

Tür Dönüşümü

Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 34 / 86.

readLine() bir String? döndürdüğü için, hesaplamalar yapmak için genellikle bu dizeyi bir sayıya dönüştürmeniz gerekecektir. Swift açık tür dönüşümü gerektirir — bir dizeyi otomatik olarak bir tam sayıya veya double değerine dönüştürmez.

Bir dizeyi tam sayıya dönüştürmek için Int() başlatıcısını kullanın. Dönüştürme işlemi başarısız olabileceği için (dize rakamlar yerine harfler içerebilir), bir optional (isteğe bağlı) değer döndürür:

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

Ondalık sayılar için Double() kullanın:

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

Bu, readLine() fonksiyonunu sayısal işlemlerle birleştirirken özellikle yararlıdır. Açma (unwrapping) işlemini birbirine zincirleyebilirsiniz:

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

if let ifadesindeki virgül, her iki koşulun da başarılı olması gerektiği anlamına gelir — girdi mevcut olmalı ve bir tam sayıya dönüştürülebilir olmalıdır.

challenge icon

Görev

Kolay

İki girdi okuyun: dize (string) olarak bir ondalık sayı ve dize olarak bir tam sayı. Bunları uygun sayısal türlerine dönüştürün ve çarpımlarını hesaplayın.

Aşağıdaki girdileri alacaksınız:

  • Birinci satır: Bir ondalık sayı (örneğin, "3.5")
  • İkinci satır: Bir tam sayı (örneğin, "4")

Her iki girdiyi de okumak için readLine() kullanın. İlk girdiyi bir Double türüne ve ikinciyi bir Int türüne dönüştürün. Ardından bunları birbiriyle çarpın ve sonucu yazdırın.

Hem girdiyi hem de dönüştürülen değeri güvenli bir şekilde açmak (unwrap) için zincirleme isteğe bağlı bağlama (chained optional binding) ile if let kullanın.

Yazdırın: İki sayının çarpımını bir Double olarak

Kopya kağıdı

Swift, dizeler ve sayılar arasında açık tür dönüşümü (type conversion) gerektirir.

Bir dizeyi tam sayıya dönüştürmek için Int() kullanın. Dönüştürme işlemi başarısız olabileceği için bu bir "optional" döndürür:

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

Bir dizeyi ondalıklı sayıya dönüştürmek için Double() kullanın:

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

if let içinde virgül kullanarak readLine() ile "optional unwrapping" işlemini zincirleyebilirsiniz. Her iki koşulun da başarılı olması gerekir:

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

Kendin dene

// Ondalık sayıyı bir dize olarak oku
if let decimalString = readLine() {
    // Tam sayıyı bir dize olarak oku
    if let intString = readLine() {
        // YAPILACAK: Kodunuzu aşağıya yazın
        // if let kullanarak decimalString'i Double'a ve intString'i Int'e dönüştürün
        // Ardından çarpımlarını hesaplayın ve yazdırın
        
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler