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:
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:
%syntax: switch değişken case değer 1 işlemler case değer n işlemler otherwise işlemler end
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:
if x == -1 || x == 0 işlemler elseif x == 1 işlemler else %veya x == 2 işlemler end
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:
%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
%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ı:
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