CodeBlanks Logo Icon CodeBlanks

Menü döngüsü

  • C kursu
  • Başlangıç
  • Ders 22/116
  • 6 dk

switch-case ile bir menü döngüsü yazarsın.

Menü için while ve switch

Şimdiye kadar hesap makinesi tüm işlemleri arka arkaya yaptı. Gerçek bir hesap makinesinde kullanıcı bir menüden işlem seçer. Bunun için while döngüsü ve switch deyimi kullanırız:

int choice = 1;
while (choice != 0) {
    switch (choice) {
        case 1: ... break;
        case 2: ... break;
        default: break;
    }
    choice = 0;
}

while döngüyü döndürür, switch seçime göre dalı yürütür.

switch deyimi

switch deyimi bir değişkenin değerine göre farklı dalları yürütür:

switch (choice) {
    case 1: add(...); break;
    case 2: subtract(...); break;
    default: break;
}

Her case'in sonunda break olmalı; aksi halde yürütme bir sonraki case'e akar. default ise hiçbir case eşleşmezse yürütülür.

Uygulama Menü döngüsü ekle

Aşağıdaki koddaki main'i değiştir: printf çağrılarını çıkarıp yerine bir while döngüsü ve switch ekle. int choice = 1; ile başlasın, case 1: printf("%d\n", add(5, 3)); break; ve case 2: printf("%d\n", subtract(5, 3)); break; dalları olsun, default: break; ve döngü sonunda choice = 0; ile çıkılsın. printf("Hesap makinesi\n"); başlık olarak kalsın.

Başlangıç kodu

main.c
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int divide(int a, int b) {
    if (b == 0) return 0;
    return a / b;
}

int main(void) {
    printf("Hesap makinesi\n");
    printf("%d\n", add(5, 3));
    printf("%d\n", subtract(5, 3));
    printf("%d\n", multiply(5, 3));
    printf("%d", divide(6, 3));
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int divide(int a, int b) {
    if (b == 0) return 0;
    return a / b;
}

int main(void) {
    printf("Hesap makinesi\n");
    int choice = 1;
    while (choice != 0) {
        switch (choice) {
            case 1: printf("%d\n", add(5, 3)); break;
            case 2: printf("%d\n", subtract(5, 3)); break;
            default: break;
        }
        choice = 0;
    }
    return 0;
}

Beklenen çıktı

Hesap makinesi
8

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Menü için en uygun döngü?

  • for
  • do-while
  • while Doğru cevap
  • foreach

Açıklama: while döngüsü koşul sağlandıkça döner; menü için uygundur.

2 Döngü koşulu

Soru
while (____) { ... }
Cevap
while (choice != 0) { ... }

Açıklama: choice != 0 koşulu choice 0 olana kadar döngüyü sürdürür.

3 switch'te break ne yapar?

  • Döngüyü başlatır
  • Sonraki case'e geçer
  • Default'a gider
  • Switch'ten çıkar Doğru cevap

Açıklama: break switch'ten çıkar ve bir sonraki case'e akışı engeller.

Başlangıç bölümündeki tüm dersler