Η δομή επανάληψης do while
στην C# είναι μια επανάληψη με έλεγχο συνθήκης, όπου ο μπλοκ κώδικα εκτελείται τουλάχιστον μία φορά πριν ελεγχθεί η συνθήκη. Αυτό την διαφοροποιεί από την while
, όπου η συνθήκη ελέγχεται πριν την πρώτη εκτέλεση του μπλοκ κώδικα.
Τι είναι το do while
- Δομή Επανάληψης: Η δομή
do while
είναι μια μορφή επανάληψης που εκτελεί έναν μπλοκ κώδικα και στη συνέχεια ελέγχει τη συνθήκη επανάληψης. - Εγγυημένη Εκτέλεση: Ο κώδικας μέσα στο
do
μπλοκ εκτελείται τουλάχιστον μία φορά, ανεξάρτητα από την αρχική κατάσταση της συνθήκης.
Τι αφορά το do while
- Εκτέλεση τουλάχιστον μία φορά: Το μπλοκ κώδικα μέσα στο
do
εκτελείται πάντα τουλάχιστον μία φορά, αφού η συνθήκη ελέγχεται μετά την εκτέλεση του μπλοκ. - Αναγκαία Συνθήκη: Η συνθήκη ελέγχεται μόνο στο τέλος κάθε επανάληψης, πράγμα που επιτρέπει στον μπλοκ κώδικα να εκτελείται με βάση τουλάχιστον μια αρχική εισαγωγή ή επεξεργασία.
Που χρησιμεύει το do while
- Αναγκαία Αρχική Εκτέλεση: Χρησιμοποιείται όταν η εκτέλεση του κώδικα πρέπει να πραγματοποιηθεί τουλάχιστον μία φορά πριν ελεγχθεί αν πρέπει να επαναληφθεί.
- Διαδικασίες που απαιτούν ελάχιστη εκτέλεση: Ιδανικό για περιπτώσεις όπου η συνθήκη εξαρτάται από την είσοδο του χρήστη ή κάποια επεξεργασία που πρέπει να γίνει τουλάχιστον μία φορά.
Πως χρησιμοποιείται το do while
- Σύνταξη: Η σύνταξη της δομής
do while
είναι η εξής:
do {
// Κώδικας προς εκτέλεση
}
while (συνθήκη);
Ο μπλοκ κώδικα εκτελείται και στη συνέχεια η συνθήκη ελέγχεται. Αν η συνθήκη είναι αληθής (true), ο μπλοκ κώδικα εκτελείται ξανά. Αν είναι ψευδής (false), η επανάληψη σταματά.
Παραδείγματα Χρήσης
Παράδειγμα 1: Εκτύπωση Αριθμών μέχρι το 5
Περιγραφή: Γράψτε ένα πρόγραμμα που εκτυπώνει τους αριθμούς από το 1 έως το 5 χρησιμοποιώντας τη δομή επανάληψης do while
.
Λύση:
using System;
namespace DoWhileExample
{
class Program
{
static void Main(string[] args)
{
int i = 1;
do
{
Console.WriteLine(i);
i++;
} while (i <= 5);
}
}
}
Παράδειγμα 2: Είσοδος Χρήστη και Επαλήθευση
Περιγραφή: Γράψτε ένα πρόγραμμα που ζητά από τον χρήστη να εισάγει έναν αριθμό μεγαλύτερο από 0. Ο βρόχος do while
θα συνεχίσει να ζητάει είσοδο μέχρι να εισαχθεί έγκυρος αριθμός.
Λύση:
using System;
namespace DoWhileExample
{
class Program
{
static void Main(string[] args)
{
int number;
do
{
Console.Write(“Εισάγετε έναν αριθμό μεγαλύτερο από 0: “);
number = int.Parse(Console.ReadLine());
} while (number <= 0);
Console.WriteLine($”Εισάγατε τον αριθμό: {number}”);
}
}
}
Παράδειγμα 3: Υπολογισμός Σαφήνειας Αριθμών
Περιγραφή: Γράψτε ένα πρόγραμμα που ζητά από τον χρήστη να εισάγει αριθμούς και υπολογίζει το άθροισμα και το μέσο όρο των αριθμών. Ο χρήστης εισάγει αριθμούς μέχρι να εισάγει τον αριθμό 0. Υπολογίστε και εκτυπώστε το άθροισμα και τον μέσο όρο.
Λύση:
using System;
namespace DoWhileExample
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
int count = 0;
int number;
do
{
Console.Write("Εισάγετε έναν αριθμό (ή 0 για να τελειώσετε): ");
number = int.Parse(Console.ReadLine());
if (number != 0)
{
sum += number;
count++;
}
} while (number != 0);
if (count > 0)
{
double average = (double)sum / count;
Console.WriteLine($"Το άθροισμα είναι: {sum}");
Console.WriteLine($"Ο μέσος όρος είναι: {average}");
}
else
{
Console.WriteLine("Δεν εισήχθησαν αριθμοί.");
}
}
}
}
Παράδειγμα 4: Αντίστροφη Εκτύπωση με Είσοδο
Περιγραφή: Γράψτε ένα πρόγραμμα που ζητά από τον χρήστη να εισάγει έναν αριθμό και να εκτυπώσει όλους τους αριθμούς από το αριθμό που εισήχθη μέχρι το 1 με αντίστροφη σειρά. Χρησιμοποιήστε τη δομή επανάληψης do while
.
Λύση:
using System;
namespace DoWhileExample
{
class Program
{
static void Main(string[] args)
{
int number;
do
{
Console.Write("Εισάγετε έναν αριθμό: ");
number = int.Parse(Console.ReadLine());
if (number > 0)
{
int i = number;
do
{
Console.WriteLine(i);
i--;
} while (i > 0);
}
} while (number <= 0);
}
}
}
Περιορισμοί του do while
- Εκτέλεση τουλάχιστον μία φορά: Εφόσον το μπλοκ κώδικα εκτελείται τουλάχιστον μία φορά, μπορεί να είναι μη επιθυμητό αν δεν θέλουμε να εκτελείται ο κώδικας με μη έγκυρες ή μη αναμενόμενες αρχικές συνθήκες.
- Επιχειρησιακή Ασφάλεια: Αν δεν είμαστε προσεκτικοί με τη συνθήκη, μπορεί να δημιουργήσουμε άπειρες επαναλήψεις, ειδικά αν η συνθήκη δεν τροποποιείται σωστά ή δεν προχωρά προς την έξοδο του βρόχου.
Η δομή επανάληψης do while
είναι χρήσιμη όταν θέλουμε να διασφαλίσουμε ότι ο μπλοκ κώδικα εκτελείται τουλάχιστον μία φορά και μετά συνεχίζει να επαναλαμβάνεται με βάση την συνθήκη.