Menu
CoddyTech

enum dalam Pernyataan switch

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 57 dari 63.

Salah satu kombinasi paling ampuh dalam pemrograman C adalah menggunakan nilai enum dengan pernyataan switch. Kombinasi ini menghasilkan logika alur kontrol yang sangat mudah dibaca dan dipelihara, serta dengan jelas menggambarkan proses pengambilan keputusan programmu.

Saat kamu menggunakan konstanta enum sebagai case dalam pernyataan switch, kode menjadi terdokumentasi dengan sendirinya. Alih-alih melihat angka misterius seperti case 0: atau case 5:, kamu melihat nama bermakna yang langsung menunjukkan tujuannya:

switch (day) {
    case MONDAY:
    case TUESDAY:
    case WEDNESDAY:
    case THURSDAY:
    case FRIDAY:
        printf("It's a weekday\n");
        break;
    case SATURDAY:
    case SUNDAY:
        printf("It's a weekend\n");
        break;
}

Pendekatan ini membuat kodemu jauh lebih mudah dipahami dan diubah. Siapa pun yang membaca kode ini langsung tahu arti setiap kasus, dan menambahkan kasus baru atau mengubah logikanya menjadi mudah. Compiler juga membantu mendeteksi error. Jika kamu salah mengeja konstanta enum, kamu akan mendapatkan error kompilasi, bukan bug yang tidak terdeteksi.

challenge icon

Tantangan

Mudah

Buat program C yang menggunakan enum dengan pernyataan switch untuk membangun sistem saran cuaca sederhana. Programmu harus:

  1. Mendefinisikan enum bernama WeatherCondition dengan konstanta berikut dalam urutan yang tepat:
    • SUNNY
    • CLOUDY
    • RAINY
    • STORMY
    • SNOWY
  2. Menulis fungsi bernama getWeatherAdvice yang:
    • Menerima parameter enum WeatherCondition bernama weather
    • Tidak mengembalikan nilai apa pun (void)
    • Menggunakan pernyataan switch untuk mencetak saran khusus berdasarkan kondisi cuaca:
      • Untuk SUNNY: cetak Perfect day for outdoor activities!
      • Untuk CLOUDY: cetak Good day for a walk, no sun protection needed.
      • Untuk RAINY: cetak Don't forget your umbrella!
      • Untuk STORMY: cetak Stay indoors and avoid travel.
      • Untuk SNOWY: cetak Drive carefully and dress warmly.
  3. Menulis fungsi bernama getActivitySuggestion yang:
    • Menerima parameter enum WeatherCondition bernama weather
    • Tidak mengembalikan nilai apa pun (void)
    • Menggunakan pernyataan switch untuk menyarankan aktivitas berdasarkan cuaca:
      • Untuk SUNNY: cetak Suggested activity: Beach or hiking
      • Untuk CLOUDY: cetak Suggested activity: Photography or gardening
      • Untuk RAINY: cetak Suggested activity: Reading or indoor games
      • Untuk STORMY: cetak Suggested activity: Movie marathon
      • Untuk SNOWY: cetak Suggested activity: Skiing or hot cocoa
  4. Di dalam fungsi utama:
    • Mendeklarasikan variabel bertipe enum WeatherCondition bernama currentWeather
    • Membaca bilangan bulat dari input yang mewakili kondisi cuaca (0, 1, 2, 3, atau 4)
    • Menetapkan nilai enum yang sesuai ke currentWeather berdasarkan input
    • Mencetak kondisi cuaca saat ini dengan format yang tepat berikut: Current weather: [numeric_value]
    • Memanggil fungsi getWeatherAdvice dengan currentWeather
    • Memanggil fungsi getActivitySuggestion dengan currentWeather

Tantangan ini menunjukkan manfaat menggabungkan enum dengan pernyataan switch untuk membuat kode yang mudah dibaca dan dipelihara. Daripada menggunakan kasus numerik yang membingungkan dalam pernyataan switch, kamu akan menggunakan konstanta enum yang bermakna dan menjelaskan logika program dengan jelas. Pernyataan switch menjadi mudah dipahami tanpa penjelasan tambahan, sehingga kamu dapat memahami hal yang diwakili setiap kasus dan mengubah perilakunya sesuai kebutuhan.

Coba sendiri

#include <stdio.h>

// TODO: Definisikan enum WeatherCondition di sini

// TODO: Implementasikan fungsi getWeatherAdvice di sini

// TODO: Implementasikan fungsi getActivitySuggestion di sini

int main() {
    // Baca input
    int weatherInput;
    scanf("%d", &weatherInput);
    
    // TODO: Deklarasikan variabel currentWeather dan tetapkan nilai enum berdasarkan input
    
    // TODO: Tampilkan kondisi cuaca saat ini dalam format "Current weather: [numeric_value]"
    
    // TODO: Panggil fungsi getWeatherAdvice
    
    // TODO: Panggil fungsi getActivitySuggestion
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online