C++
Birleştirme
Tüm parçaları birleştirerek çalışan bir final uygulaması yazarsın.
Switch ile menü birleştirme
Son derste tüm parçaları birleştirip menüden bir seçim simüle edeceğiz. switch deyimi, choice değişkeninin değerine göre uygun dalı çalıştırır; her dal bir menü seçeneğine karşılık gelir.
Bu derste printMenu(); çağrısından sonra switch (choice) yapısı ekleyeceğiz. case 1: ekleme, case 2: listeleme, case 3: çıkış olacak. Böylece uygulamanın tüm akışını tek bir yerde görmüş olursun.
Switch deyiminin akışı
switch deyimi bir tam sayı değeri alır ve uygun case dalına atlar. Her dalın sonunda break; yazmak, diğer dalların çalışmasını önler. default: dalı hiçbir case'e uymayan değerler için yedek olarak kullanılır.
switch (choice) {
case 1: addTask(...); break;
case 2: listTasks(...); break;
case 3: return 0;
default: cout << "geçersiz";
}
Burada choice 1, 2 veya 3 olduğunda ilgili dal çalışır. break ile switch'ten çıkılır; return 0 ise doğrudan programı bitirir. Bu yapı, menü uygulamalarının temelidir.
Uygulama Switch ile menüyü birleştir
printMenu(); çağrısından sonra vector<Task> tasks; ve addTask(tasks, "Ödev", "bekliyor"); ekle. Sonra int choice = 2; ile seçimi simüle et. switch (choice) aç; case 1: dalında addTask(tasks, "Spor", "bekliyor"); break;; case 2: dalında listTasks(tasks); break;; case 3: dalında cout << "Çıkış" << endl; break; yaz. default: dalında cout << "Geçersiz" << endl; ekle.
Örnek çözümü göster
#include <iostream>
#include <string>
#include <vector>
#include <stdexcept>
using namespace std;
struct Task {
string title;
string status;
};
class InvalidTaskException : public std::exception {
public:
const char* what() const noexcept override {
return "geçersiz görev";
}
};
void printMenu() {
cout << "1 - Ekle" << endl;
cout << "2 - Listele" << endl;
cout << "3 - Çıkış" << endl;
}
void addTask(vector<Task>& tasks, string title, string status) {
if (title.empty()) throw InvalidTaskException();
Task t;
t.title = title;
t.status = status;
tasks.push_back(t);
}
void listTasks(const vector<Task>& tasks) {
for (Task t : tasks) {
cout << t.title << " - " << t.status << endl;
}
}
int main() {
printMenu();
vector<Task> tasks;
addTask(tasks, "Ödev", "bekliyor");
int choice = 2;
switch (choice) {
case 1:
addTask(tasks, "Spor", "bekliyor");
break;
case 2:
listTasks(tasks);
break;
case 3:
cout << "Çıkış" << endl;
break;
default:
cout << "Geçersiz" << endl;
}
return 0;
}
Kendini test et
-
Menü öğesini dalıyla eşleştir
- 1 - Ekle
- case 1
- 2 - Listele
- case 2
- 3 - Çıkış
- case 3
-
switch (choice) yapısında case 2 neyi çağırır?
- listTasks
- addTask
- printMenu
- throw
Cevabı göster
listTasks — case 2 listeleme için listTasks'ı çağırır.
-
Boşluğu doldur: break çağrısı
case 1:
addTask(tasks, "Ödev", "bekliyor");
____;
break;
Cevabı göster
case 1:
addTask(tasks, "Ödev", "bekliyor");
break;
break;
Sıradaki ders: Başlangıç bölüm sınavı