Bir sosyolog, toplumsal hareketlilik üzerine bir araştırma yapmaktadır. Bireyin eğitim durumu "yüksek" ise sosyal statüsünün "yüksek", eğitim durumu "yüksek" değilse sosyal statüsünün "orta" olarak kodlanmasını istemektedir.
Bu durum için aşağıdaki programlama yapılarından hangisi en uygundur?
Sevgili öğrenciler,
Bu soruda, bir sosyologun belirlediği kurala göre bireyin eğitim durumuna bakarak sosyal statüsünü kodlamamız isteniyor. Kural çok açık:
Bu, temelde tek bir koşula (eğitim durumu yüksek mi?) bağlı olarak iki farklı sonuçtan birini seçme durumudur. Şimdi programlama yapılarını inceleyelim:
if ifadesi, yalnızca belirli bir koşul doğru olduğunda bir kod bloğunu çalıştırmak için kullanılır. Eğer koşul yanlışsa, if bloğundaki kod çalışmaz ve program akışı devam eder. Bu durumda, "eğitim yüksekse statü yüksek olsun" kısmını halledebiliriz. Ancak, "eğitim yüksek değilse statü orta olsun" kısmını doğrudan ve tek bir mantıksal akış içinde sadece if ile ifade etmek zordur veya ikinci bir if ifadesi gerektirir ki bu da if-else kadar net ve verimli değildir.if bloğu çalışır, koşul yanlışsa else bloğu çalışır. Tam da bizim ihtiyacımız olan şey budur: "Eğitim durumu yüksek ise (if bloğu) statüyü 'yüksek' yap, DEĞİLSE (else bloğu) statüyü 'orta' yap." Bu yapı, iki karşılıklı durumu en açık ve en verimli şekilde ele alır.if yapıları, bir koşulun doğru olmasından sonra başka bir koşulun daha kontrol edilmesi gerektiği durumlarda kullanılır. Örneğin, "eğitim yüksekse VE aynı zamanda gelir de yüksekse statü 'çok yüksek' olsun" gibi. Bizim problemimizde tek bir ana koşul (eğitim durumu yüksek mi?) ve bu koşulun iki farklı sonucuna göre bir atama var. İç içe if kullanmak bu senaryo için gereksiz yere karmaşık olurdu.while döngüsü, belirli bir koşul doğru olduğu sürece bir kod bloğunu tekrar tekrar çalıştırmak için kullanılır. Bu, bir karar verme veya bir atama yapma yapısı değil, bir tekrar etme (iterasyon) yapısıdır. Dolayısıyla, bu problemdeki tek seferlik karar verme durumu için kesinlikle uygun değildir.Sonuç olarak, problemdeki "eğitim durumu yüksek ise X, değilse Y" mantığı, if-else yapısının temel çalışma prensibiyle birebir örtüşmektedir. Bu yapı, iki karşılıklı durumu en açık, en verimli ve en doğru şekilde ifade etmemizi sağlar.
Cevap B seçeneğidir.