D Programlama Dili - Çözümler

switch ve case

  1. import std.stdio;
    import std.string;
    
    void main() {
        string işlem;
        double birinci;
        double ikinci;
    
        write("İşlem? ");
        işlem = strip(readln());
    
        write("İki sayıyı aralarında boşlukla yazın: ");
        readf(" %s %s", &birinci, &ikinci);
    
        double sonuç;
    
        final switch (işlem) {
    
        case "topla":
            sonuç = birinci + ikinci;
            break;
    
        case "çıkart":
            sonuç = birinci - ikinci;
            break;
    
        case "çarp":
            sonuç = birinci * ikinci;
            break;
    
        case "böl":
            sonuç = birinci / ikinci;
            break;
        }
    
        writeln(sonuç);
    }
    
  2. case değerlerinin virgüllerle belirlenebilmesi olanağını kullanarak:
        final switch (işlem) {
    
        case "topla", "+":
            sonuç = birinci + ikinci;
            break;
    
        case "çıkart", "-":
            sonuç = birinci - ikinci;
            break;
    
        case "çarp", "*":
            sonuç = birinci * ikinci;
            break;
    
        case "böl", "/":
            sonuç = birinci / ikinci;
            break;
        }
    
  3. Bu durumda default bölümünü eklemek gerekeceği için final switch kullanamayız. Programın değişen yerleri:
    // ...
    
        switch (işlem) {
    
        // ...
    
        default:
            throw new Exception("Geçersiz işlem");
        }
    
    // ...