while στην C#

Η while είναι μια δομή επανάληψης στην C# που εκτελεί έναν μπλοκ κώδικα επανειλημμένα, όσο μια καθορισμένη συνθήκη είναι αληθής (true). Είναι ιδιαίτερα χρήσιμη όταν δεν γνωρίζουμε εκ των προτέρων πόσες φορές πρέπει να επαναληφθεί ο κώδικας.

Τι είναι η while

  • Δομή Επανάληψης: Ο βρόχος while είναι μια δομή ελέγχου ροής που επαναλαμβάνει την εκτέλεση του μπλοκ κώδικα όσο η συνθήκη που του παρέχεται είναι αληθής.
  • Ατελείωτη Επανάληψη: Αν η συνθήκη δεν αλλάξει ποτέ σε ψευδή (false), ο βρόχος while μπορεί να συνεχίσει να εκτελείται ατέρμονα, πράγμα που μπορεί να προκαλέσει “άπειρη επανάληψη” (infinite loop).

Τι αφορά η while

  • Επαναλαμβανόμενη Εκτέλεση: Χρησιμοποιείται για επαναλαμβανόμενη εκτέλεση ενός μπλοκ κώδικα με βάση την αλήθεια μιας συνθήκης.
  • Δυναμική Συνθήκη: Επιτρέπει τη χρήση συνθηκών που ενδέχεται να αλλάξουν κατά τη διάρκεια της εκτέλεσης του βρόχου.

Που χρησιμεύει η while

  • Αβέβαιη Αριθμητική Επανάληψη: Είναι χρήσιμη όταν δεν γνωρίζουμε πόσες φορές πρέπει να επαναληφθεί μια ενέργεια ή όταν η συνθήκη είναι δυναμική.
  • Επανάληψη με Συνθήκη: Χρησιμοποιείται για να επαναλάβει την εκτέλεση μέχρις ότου μια συνθήκη γίνει ψευδής.

Πως χρησιμοποιείται η while

  • Σύνταξη: Η σύνταξη του βρόχου while είναι απλή.
while (συνθήκη)
{
    // Κώδικας προς εκτέλεση
}

Η συνθήκη αξιολογείται πριν από την εκτέλεση του μπλοκ κώδικα και, αν είναι αληθής, ο κώδικας εκτελείται. Μετά την εκτέλεση, η συνθήκη επανεξετάζεται και ο βρόχος επαναλαμβάνεται όσο η συνθήκη παραμένει αληθής.

Παράδειγμα Χρήσης

Παράδειγμα 1: Εκτύπωση Αριθμών από το 1 έως το 5

Περιγραφή: Γράψτε ένα πρόγραμμα που εκτυπώνει τους αριθμούς από το 1 έως το 5 χρησιμοποιώντας τον βρόχο while.

Λύση:

using System;

namespace WhileExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 1;
            while (i <= 5)
            {
                Console.WriteLine(i);
                i++;
            }
        }
    }
}

Παράδειγμα 2: Υπολογισμός Αθροίσματος

Περιγραφή: Γράψτε ένα πρόγραμμα που υπολογίζει το άθροισμα των αριθμών από το 1 έως το 100 χρησιμοποιώντας τον βρόχο while.

Λύση:

using System;

namespace WhileExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int sum = 0;
            int i = 1;
            
            while (i <= 100)
            {
                sum += i;
                i++;
            }
            
            Console.WriteLine($"Το άθροισμα των αριθμών από το 1 έως το 100 είναι: {sum}");
        }
    }
}

Παράδειγμα 3: Έλεγχος Εισόδου Χρήστη

Περιγραφή: Γράψτε ένα πρόγραμμα που ζητάει από τον χρήστη να εισάγει έναν αριθμό και να εκτυπώνει αν ο αριθμός είναι θετικός, αρνητικός ή μηδέν. Ο βρόχος θα συνεχίζει μέχρι ο χρήστης να εισάγει τον αριθμό 0.

Λύση:

using System;

namespace WhileExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int number;
            
            do
            {
                Console.Write("Εισάγετε έναν αριθμό (ή 0 για έξοδο): ");
                number = int.Parse(Console.ReadLine());
                
                if (number > 0)
                {
                    Console.WriteLine("Ο αριθμός είναι θετικός.");
                }
                else if (number < 0)
                {
                    Console.WriteLine("Ο αριθμός είναι αρνητικός.");
                }
                else
                {
                    Console.WriteLine("Ο αριθμός είναι μηδέν.");
                }
                
            } while (number != 0);
        }
    }
}

Παράδειγμα 4: Άπειρη Επανάληψη

Περιγραφή: Δημιουργήστε έναν βρόχο while που ζητά από τον χρήστη να εισάγει ένα θετικό αριθμό και εκτυπώνει “Επιτυχία!” αν ο αριθμός είναι θετικός. Ο βρόχος θα συνεχίζει να ζητάει είσοδο μέχρι να εισαχθεί ένας θετικός αριθμός.

Λύση:

using System;

namespace WhileExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = -1; // Αρχικοποίηση με τιμή που δεν είναι θετική
            
            while (number <= 0)
            {
                Console.Write("Εισάγετε έναν θετικό αριθμό: ");
                number = int.Parse(Console.ReadLine());
                
                if (number <= 0)
                {
                    Console.WriteLine("Παρακαλώ, εισάγετε έναν θετικό αριθμό.");
                }
            }
            
            Console.WriteLine("Επιτυχία!");
        }
    }
}

Περιορισμοί της while

  • Άπειρη Επανάληψη: Αν η συνθήκη δεν αλλάξει ποτέ σε ψευδή, ο βρόχος μπορεί να συνεχιστεί άπειρα, προκαλώντας πιθανές επιβλαβείς συνέπειες για το πρόγραμμα ή το σύστημα.
  • Απαιτεί Ποιοτική Σύνθεση Συνθηκών: Αν δεν ληφθεί υπόψη, μπορεί να οδηγήσει σε λογικά σφάλματα, αν η συνθήκη δεν έχει ενημερωθεί σωστά.

Η while είναι πολύ χρήσιμη όταν θέλουμε να επαναλάβουμε έναν μπλοκ κώδικα όσο μια συνθήκη ισχύει, προσφέροντας ευελιξία και δύναμη στον έλεγχο της ροής εκτέλεσης του προγράμματος.