Ο έλεγχος ροής στη Cairo σου επιτρέπει να ελέγχεις τη ροή εκτέλεσης των προγραμμάτων σου με βάση συνθήκες και επαναλήψεις.
Χρησιμοποίησε εκφράσεις if για να εκτελέσεις κώδικα με βάση συνθήκες:
let number = 42;
if number > 0 {
println!("Positive number");
} else if number < 0 {
println!("Negative number");
} else {
println!("Zero");
}
Το if είναι έκφραση, οπότε μπορεί να επιστρέψει τιμές:
let result = if condition { 5 } else { 10 };
Χρησιμοποίησε το loop για να επαναλάβεις κώδικα.
Ένας βρόχος εκτελείται ατελείωτα αν δεν τον σταματήσεις· χρησιμοποίησε το break για να βγεις από τον βρόχο όταν ικανοποιηθεί μια συνθήκη.
let mut counter = 0;
loop {
if counter == 5 {
break;
}
println!("Counter: {}", counter);
counter += 1;
}
Οι βρόχοι μπορούν να επιστρέψουν τιμές χρησιμοποιώντας το break:
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Returns 20
}
};
Χρησιμοποίησε το continue για να περάσεις στην επόμενη επανάληψη:
let mut i = 0;
loop {
i += 1;
if i % 2 == 0 {
continue; // Skip even numbers
}
if i > 10 {
break;
}
println!("{}", i); // Only prints odd numbers
}
Σε αυτή την άσκηση θα βοηθήσεις στη διαχείριση των καθημερινών λειτουργιών ενός μικρού αρτοποιείου, χρησιμοποιώντας τις δομές ελέγχου ροής στη Cairo.
Υλοποίησε τη συνάρτηση calculate_total που υπολογίζει το κόστος μιας παραγγελίας με βάση τον τύπο του γλυκίσματος και την ποσότητα:
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10) // Returns: 10 (10 * 1)
Υλοποίησε τη συνάρτηση apply_discount που εφαρμόζει εκπτώσεις με βάση το σύνολο της παραγγελίας.
Εφάρμοσε την ποσοστιαία έκπτωση στο σύνολο και μετά στρογγυλοποίησε προς τα κάτω στον πλησιέστερο ακέραιο αριθμό νομισμάτων (floor).
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8) // Returns: 8
Υλοποίησε τη συνάρτηση baking_schedule που δημιουργεί ένα καθημερινό πρόγραμμα ψησίματος.
Το αρτοποιείο ψήνει σε παρτίδες των 5 παραγγελιών την ώρα:
baking_schedule(18) // Returns: [5, 5, 5, 3] (3 full batches + 3 remaining)
baking_schedule(10) // Returns: [5, 5] (2 full batches)
baking_schedule(3) // Returns: [3] (1 partial batch)
Χρησιμοποίησε κατάλληλες δομές ελέγχου ροής (if/else, loop) για να λύσεις κάθε πρόβλημα αποτελεσματικά.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Cairo με 25 έννοιες68 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.