Δηλώσεις C# IF, Switch, For, While Loop [Παραδείγματα]

⚡ Έξυπνη Σύνοψη

Οι εντολές υπό όρους και οι βρόχοι της C# ελέγχουν τη ροή ενός προγράμματος εκτελώντας ή επαναλαμβάνοντας μπλοκ κώδικα με βάση τη λογική. Οι εντολές if, switch, while και for επιτρέπουν σε ένα πρόγραμμα να λαμβάνει αποφάσεις και να επαναλαμβάνεται αποτελεσματικά.

  • 🔀 Έλεγχος ροής: Οι εντολές υπό όρους αλλάζουν τη σειρά εκτέλεσης, έτσι ώστε ένα πρόγραμμα να εκτελεί μόνο τις εντολές που ταιριάζουν με τη λογική του.
  • Εάν η δήλωση: Η εντολή if αξιολογεί μια Boolean έκφραση και εκτελεί ένα μπλοκ όταν είναι true και ένα άλλο όταν είναι false.
  • 🔢 Δήλωση Switch: Η πρόταση switch συγκρίνει μια τιμή με αρκετές ετικέτες περίπτωσης (case labels) και χρησιμοποιεί την εντολή break για διακοπή μόλις βρεθεί μια αντιστοιχία.
  • 🔁 βρόχος While: Ο βρόχος while επαναλαμβάνει ένα μπλοκ εντολών όσο η συνθήκη του παραμένει αληθής, κάτι που ταιριάζει σε έναν άγνωστο αριθμό επαναλήψεων.
  • 🔄 Για βρόχο: Ο βρόχος for αρχικοποιεί, ελέγχει και αυξάνει έναν μετρητή σε μία γραμμή, ιδανικό όταν ο αριθμός επαναλήψεων είναι γνωστός.
  • 🤖 Βοήθεια AI: Το GitHub Copilot σχεδιάζει τη λογική if, switch και loop, ενώ το ML.NET επαναχρησιμοποιεί τις ίδιες συνθήκες για να διακλαδώσει τους αγωγούς μηχανικής μάθησης.

Δηλώσεις υπό όρους C#

Έλεγχος ροής και δηλώσεις υπό όρους

Ο έλεγχος ροής και οι δηλώσεις υπό όρους είναι διαθέσιμοι σε οποιαδήποτε γλώσσα προγραμματισμού για την αλλαγή της ροής ενός προγράμματος.

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

Θα κατανοήσετε καλύτερα καθώς εξετάζουμε τις διάφορες δηλώσεις που είναι διαθέσιμες σε C#.

Λάβετε υπόψη ότι όλος ο παρακάτω κώδικας γίνεται στο αρχείο Program.cs.

1) Αν δήλωση

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

Στο παρακάτω παράδειγμά μας, γίνεται μια σύγκριση για μια μεταβλητή που ονομάζεται value. Εάν η τιμή της μεταβλητής είναι μικρότερη από 10, τότε θα εκτελεστεί μία εντολή ή θα εκτελεστεί μια άλλη εντολή.

Εάν δήλωση

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code Εξήγηση:-

  1. Αρχικά ορίζουμε μια μεταβλητή που ονομάζεται τιμή και την ορίζουμε στην τιμή 11.
  2. Στη συνέχεια χρησιμοποιούμε τη δήλωση 'if' για να ελέγξουμε εάν η τιμή είναι μικρότερη από το 10 της μεταβλητής. Το αποτέλεσμα θα είναι είτε αληθές είτε ψευδές.
  3. Εάν η συνθήκη if αξιολογηθεί ως αληθής, τότε στέλνουμε το μήνυμα "Η τιμή είναι μικρότερη από 10" στην κονσόλα.
  4. Εάν η συνθήκη if αξιολογηθεί ως ψευδής, τότε στέλνουμε το μήνυμα "Η τιμή είναι μεγαλύτερη από 10" στην κονσόλα.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Εάν δήλωση

Μπορούμε να δούμε ξεκάθαρα ότι η δήλωση «αν» αξιολογήθηκε ως ψευδής. Ως εκ τούτου, το μήνυμα "Η τιμή είναι μεγαλύτερη από 10" στάλθηκε στην κονσόλα.

2) Δήλωση διακόπτη

Η δήλωση switch είναι μια βελτίωση της δήλωσης "if". Εάν έχετε πολλές εκφράσεις που πρέπει να αξιολογηθούν σε μία λήψη, τότε η σύνταξη πολλαπλών δηλώσεων «αν» γίνεται πρόβλημα.

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

Ας δούμε πώς λειτουργεί αυτό με το παρακάτω παράδειγμα. Εδώ, συγκρίνουμε και πάλι την τιμή μιας μεταβλητής που ονομάζεται «value». Στη συνέχεια, ελέγχουμε αν η τιμή είναι ίση με 1 ή 2 ή κάτι εντελώς διαφορετικό.

Δήλωση αλλαγής

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code Εξήγηση:-

  1. Αρχικά ορίζουμε μια μεταβλητή που ονομάζεται 'value' και την ορίζουμε στην τιμή 11.
  2. Στη συνέχεια χρησιμοποιούμε τη δήλωση 'switch' για να ελέγξουμε την τιμή της μεταβλητής 'value'.
  3. Οι δηλώσεις περίπτωσης χρησιμοποιούνται για τον καθορισμό διαφορετικών συνθηκών. Με βάση τις συνθήκες, μπορεί να εκτελεστεί ένα σύνολο εντολών. Μια δήλωση διακόπτη μπορεί να έχει πολλαπλές συνθήκες περίπτωσης. Η πρώτη πρόταση case ελέγχει για να δει αν η τιμή της μεταβλητής είναι ίση με 1.
  4. Εάν η πρώτη πρόταση περίπτωσης είναι αληθής, τότε το μήνυμα "Η τιμή είναι 1" γράφεται στην κονσόλα.
  5. Η εντολή break χρησιμοποιείται για να διακοπεί από ολόκληρη τη δήλωση switch, όταν μια συνθήκη είναι αληθής.
  6. Η προεπιλεγμένη συνθήκη είναι μια ειδική συνθήκη. Αυτό σημαίνει απλώς ότι εάν καμία έκφραση πεζών-κεφαλαίων δεν αξιολογηθεί ως true, τότε εκτελέστε το σύνολο εντολών για την προεπιλεγμένη συνθήκη.

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

Παραγωγή:

Δήλωση αλλαγής

3) Ενώ βρόχος

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

Στο παρακάτω παράδειγμά μας, χρησιμοποιούμε τη δήλωση while για να εμφανίσουμε την τιμή μιας μεταβλητής 'i'. Η εντολή while χρησιμοποιείται για την εμφάνιση της τιμής 3 φορές.

Ενώ βρόχος

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code Εξήγηση:-

  1. Δύο Ακέραιοι μεταβλητές ορίζονται, το ένα είναι τιμή και το άλλο είναι «i». Η μεταβλητή τιμή χρησιμοποιείται ως το ανώτερο όριο στο οποίο πρέπει να επαναλάβουμε τη δήλωση while. Και το 'i' είναι η μεταβλητή που θα υποβληθεί σε επεξεργασία κατά την επανάληψη.
  2. Στη δήλωση while, η τιμή του 'i' ελέγχεται συνεχώς έναντι του ανώτατου ορίου.
  3. Εδώ εμφανίζουμε την τιμή του 'i' στην κονσόλα. Αυξάνουμε επίσης την τιμή του 'i'.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Ενώ βρόχος

Εδώ μπορείτε να δείτε ότι η εντολή while εκτελείται 3 φορές και αυξάνεται ταυτόχρονα. Και κάθε φορά, εμφάνιζε την τρέχουσα τιμή της μεταβλητής 'i'.

4) Για βρόχο

Ο βρόχος 'for' χρησιμοποιείται επίσης για επαναληπτικούς σκοπούς. Ας υποθέσουμε ότι αν θέλετε να επαναλάβετε ένα συγκεκριμένο σύνολο δηλώσεων για έναν συγκεκριμένο αριθμό φορών, τότε χρησιμοποιείται ο βρόχος for.

Στο παρακάτω παράδειγμά μας, χρησιμοποιούμε τη δήλωση «για» για να εμφανίσουμε την τιμή μιας μεταβλητής «i». Η δήλωση «για» χρησιμοποιείται για την εμφάνιση της τιμής 3 φορές.

Για βρόχο

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code Εξήγηση:-

  1. Η λέξη-κλειδί «για» χρησιμοποιείται για να ξεκινήσει η δήλωση «βρόχος για».
  2. Στο 'for loop' ορίζουμε 3 πράγματα. Το πρώτο είναι να αρχικοποιήσετε την τιμή μιας μεταβλητής, η οποία θα χρησιμοποιηθεί στον βρόχο 'for'.
  3. Το δεύτερο είναι να συγκρίνετε την τιμή του 'i' με ένα ανώτερο όριο. Στην περίπτωσή μας, το ανώτερο όριο είναι η τιμή του 3 (i<3).
  4. Τέλος, αυξάνουμε την τιμή του 'i' ανάλογα.
  5. Εδώ εμφανίζουμε την τιμή του 'i' στην κονσόλα.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Για βρόχο

Εδώ μπορείτε να δείτε ότι η εντολή «για» εκτελείται 3 φορές. Και κάθε φορά, εμφάνιζε την τρέχουσα τιμή της μεταβλητής 'i'.

Συχνές Ερωτήσεις

Η πρόταση if χειρίζεται εύρη τιμών και σύνθετες λογικές συνθήκες, ενώ η πρόταση switch συγκρίνει μία τιμή με αρκετές ετικέτες σταθερών πεζών-κεφαλαίων. Η πρόταση Switch είναι πιο καθαρή για πολλές διακριτές τιμές, ενώ η πρόταση if-else ταιριάζει σε εύρη τιμών, πολλαπλές μεταβλητές και λογικούς τελεστές.

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

Ένας βρόχος while ελέγχει την συνθήκη του πριν από κάθε επανάληψη, επομένως μπορεί να εκτελεστεί μηδέν φορές. Ένας βρόχος do-while ελέγχει την συνθήκη μετά το σώμα, επομένως εκτελείται πάντα τουλάχιστον μία φορά, κάτι που ταιριάζει στα μενού και στην επικύρωση εισόδου.

Η εντολή break τερματίζει αμέσως έναν βρόχο ή μια εναλλαγή, ενώ η εντολή continue παραλείπει το υπόλοιπο της τρέχουσας επανάληψης και μετακινείται στην επόμενη. Και οι δύο αλλάζουν τη ροή, αλλά μόνο η εντολή break τερματίζει εντελώς τον βρόχο.

Ο τριαδικός τελεστής ?: είναι μια συμπαγής μορφή του if-else. Αξιολογεί μια συνθήκη, επιστρέφει την πρώτη τιμή όταν η συνθήκη είναι αληθής και τη δεύτερη τιμή όταν είναι ψευδής, παράγοντας μια συνοπτική ανάθεση μίας γραμμής.

Ένας βρόχος foreach επαναλαμβάνεται σε κάθε στοιχείο μιας συλλογής, όπως ένας πίνακας ή μια λίστα, χωρίς να χρειάζεται ευρετήριο ή μετρητή. Διαβάζει τη συλλογή με ασφάλεια και αποτρέπει συνηθισμένα σφάλματα εκτός εύρους και σφάλματα εκτός εύρους.

Ναι. Το GitHub Copilot προτείνει if, switch, while και for blocks από ένα σχόλιο ή όνομα μεθόδου μέσα στο Visual Studio και VS Code. RevΔείτε κάθε πρόταση για σωστές συνθήκες και όρια βρόχου, καθώς το Copilot μπορεί να εισαγάγει σφάλματα off-by-one.

Οι αγωγοί ML.NET χρησιμοποιούν εντολές υπό όρους C# για να διακλαδώσουν τις τιμές των χαρακτηριστικών και βρόχους για να επαναλάβουν τις σειρές εκπαίδευσης. Το ίδιο ισχύει και για τα if, switch και logic, τα οποία προετοιμάζουν δεδομένα και δρομολογούν προβλέψεις, διατηρώντας παράλληλα τις εντολές.ping μια ροή εργασίας μηχανικής μάθησης με ισχυρή τυποποίηση.

Συνοψίστε αυτήν την ανάρτηση με: