Gönderi

MATLAB Switch – Case Yapısı

Bu yazımızda, MATLAB’da bulunan “switch – case” yapısına değineceğiz. Bir değişkenin farklı değerleri için işlem yapılacaksa, “switch – case” yapısı bize bu konuda yardım eder. “switch – case” yapısının temel amacı; “if – elseif” koşul deyimlerinde yazılan uzun koşulların yerine, kısa hatta tek karakter yazımı ile aynı işlevi görmektir. Örneğin; “x” isminde bir değişkenin, “-1“,”0“, “1” ve “2” olmak üzere dört tane alabileceği değer olsun. Biz bu değerlere göre farklı işlemler yaptırmak isteyelim. Bu durumu, “if-elseif” kullanarak yazalım:

1
2
3
4
5
6
7
8
9
if x == -1
    %işlemler
elseif x == 0
    %işlemler
elseif x == 1
    %işlemler
else %veya "elseif x == 2"
    %işlemler
end

Aynı durumu “switch – case” yapısı ile yazalım:

1
2
3
4
5
6
7
8
9
%syntax:
switch degisken
    case deger 1
        %işlemler
    case deger n
        %işlemler
    otherwise
        %işlemler
end
1
2
3
4
5
6
7
8
9
10
switch x
    case -1
        %işlemler
    case 0
        %işlemler
    case 1
        %işlemler
    otherwise %veya "case 2"
        %işlemler
end

Eğer “-1” ile “0” değerlerinde aynı işlemleri, diğer değerlerinde de farklı işlemler yaptırmak istersek:

1
2
3
4
5
6
7
if x == -1 || x == 0
        %işlemler
elseif x == 1
        %işlemler
else %veya x == 2
        %işlemler
end
1
2
3
4
5
6
7
8
switch x
    case {-1, 0}
        %işlemler
    case 1
        %işlemler
    otherwise %veya "case 2"
        %işlemler
end

Gördüğünüz üzere; “switch – case” yapısı bir değişkenin farklı değerleri için farklı işlemler yapılacaksa, bize kolaylık sağlar. Bir başka örnek ile konuyu pekiştirelim. Kullanıcının seçmiş olduğu bir ayın kaç günden oluştuğunu bildiren bir program oluşturalım. Kullanıcı açılan bir pencere yoluyla isteği ayı seçsin. Sonucu yine açılan bir pencere ile kullanıcıya bildirelim. Kullanıcı hatalı bir giriş yaparsa, ekrana hata bildiren bir pencere oluşturalım. “if-elseif” koşul deyimi ile “switch-case” yapısı arasındaki farkı anlamak için, kodumuzu iki türlü de yazalım:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%kodlamaogreniyorum.com, 2020
clear all
clc
ay = inputdlg('Ay numarası: ','Giriş');
if ay{1} == "2"
        msgbox('Girdiğiniz ay 28 günden oluşur.');
elseif ay{1} == "1" || ay{1} == "3" || ay{1} == "5" || ay{1} == "7" ...
      || ay{1} == "8" || ay{1} == "10" || ay{1} == "12"
        msgbox('Girdiğiniz ay 31 günden oluşur.');
elseif ay{1} == "4" || ay{1} == "6" || ay{1} == "9" || ay{1} == "11"
        msgbox('Girdiğiniz ay 30 günden oluşur.');
else
        warndlg('Hatalı giriş yaptınız.','HATA');
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
%kodlamaogreniyorum.com, 2020
clear all
clc
ay = inputdlg('Ay numarası: ','Giriş');
switch ay{1}
    case '2'
        msgbox('Girdiğiniz ay 28 günden oluşur.');
    case {'1','3','5','7','8','10','12'}
        msgbox('Girdiğiniz ay 31 günden oluşur.');
    case {'4','6','9','11'}
        msgbox('Girdiğiniz ay 30 günden oluşur.');
    otherwise
        warndlg('Hatalı giriş yaptınız.','HATA');
end

“switch – case – otherwise” mantığının iyice kavranması için akış diyagramları:

If-ElseIf-Else Yapısı If-ElseIf-Else Yapısı

Bu yazımızda “switch – case” yapısına değinmiş olduk. Bir sonraki yazımızda, “switch – case” yapısını kullanarak hesap makinesi programı oluşturacağız.

Bütün MATLAB kodlarına Github sayfam aracılığı ile erişebilirsiniz. Github sayfamın linkine aşağıdan ulaşabilirsiniz. Görüşmek üzere!

Github: Github MATLAB

Sitemize destek olmak isteyen sponsorlar için link: Patreon

Bu gönderi CC BY 4.0 lisansı altındadır.