Instrukcje pętli IF, Switch, For, While w języku C# [przykłady]

⚡ Inteligentne podsumowanie

Instrukcje warunkowe i pętle języka C# sterują przepływem programu poprzez uruchamianie lub powtarzanie bloków kodu w oparciu o logikę. Instrukcje if, switch, while i for pozwalają programowi podejmować decyzje i efektywnie iterować.

  • 🔀 Kontrola przepływu: Instrukcje warunkowe zmieniają kolejność wykonywania, dzięki czemu program uruchamia tylko te instrukcje, które pasują do jego logiki.
  • Instrukcja if: Instrukcja if ocenia wyrażenie boolowskie i uruchamia jeden blok, gdy jest ono prawdą, i kolejny, gdy jest fałszem.
  • 🔢 Instrukcja Switch: Instrukcja switch porównuje jedną wartość z kilkoma etykietami case i używa instrukcji break, aby zatrzymać działanie po znalezieniu dopasowania.
  • 🔁 Pętla while: Pętla while powtarza blok instrukcji tak długo, jak jej warunek pozostaje prawdziwy, co pozwala na nieznaną liczbę iteracji.
  • 🔄 Pętla for: Pętla for inicjuje, testuje i zwiększa licznik w jednym wierszu, co jest idealnym rozwiązaniem, gdy znana jest liczba powtórzeń.
  • 🤖 Pomoc AI: GitHub Copilot tworzy logikę instrukcji if, switch i loop, podczas gdy ML.NET wykorzystuje te same warunki do rozgałęziania potoków uczenia maszynowego.

Instrukcje warunkowe C#

Kontrola przepływu i instrukcje warunkowe

Sterowanie przepływem i instrukcje warunkowe są dostępne w dowolnym języku programowania i umożliwiają zmianę przebiegu programu.

Na przykład, jeśli ktoś chce wykonać tylko określony zestaw instrukcji na podstawie pewnej logiki, wówczas przydatne będą sterowanie przepływem i instrukcje warunkowe.

Lepsze zrozumienie uzyskasz, gdy będziemy przeglądać różne instrukcje dostępne w języku C#.

Należy pamiętać, że cały poniższy kod jest zapisany w pliku Program.cs.

1) Jeżeli oświadczenie

Instrukcja if służy do oceny wyrażenia boolowskiego przed wykonaniem zestawu instrukcji. Jeśli wyrażenie zwróci wartość true, zostanie uruchomiony jeden zestaw instrukcji, w przeciwnym razie zostanie uruchomiony inny zestaw instrukcji.

W poniższym przykładzie przeprowadzamy porównanie zmiennej o nazwie value. Jeśli wartość zmiennej jest mniejsza niż 10, zostanie uruchomiona jedna instrukcja, w przeciwnym razie zostanie uruchomiona kolejna.

Jeśli oświadczenie

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 Wyjaśnienie:-

  1. Najpierw definiujemy zmienną o nazwie wartość i ustawiamy ją na wartość 11.
  2. Następnie używamy instrukcji „if”, aby sprawdzić, czy wartość zmiennej jest mniejsza niż 10. Wynik będzie albo prawdziwy, albo fałszywy.
  3. Jeśli warunek if ma wartość true, wysyłamy do konsoli komunikat „Wartość jest mniejsza niż 10”.
  4. Jeśli warunek if ma wartość false, wysyłamy do konsoli komunikat „Wartość jest większa niż 10”.

Jeśli powyższy kod został wpisany poprawnie i program zostanie pomyślnie wykonany, wyświetlony zostanie następujący komunikat.

Wyjście:

Jeśli oświadczenie

Widzimy wyraźnie, że stwierdzenie „if” zostało ocenione jako fałszywe. Stąd do konsoli został wysłany komunikat „Wartość jest większa niż 10”.

2) Instrukcja Switch

Instrukcja switch jest rozwinięciem instrukcji „if”. Jeśli masz wiele wyrażeń, które należy ocenić za jednym razem, napisanie wielu instrukcji „jeśli” staje się problemem.

Instrukcja switch służy do oceny wyrażenia i uruchamiania różnych instrukcji na podstawie wyniku wyrażenia. Jeśli jeden warunek nie zostanie uznany za prawdziwy, instrukcja switch przejdzie do następnego warunku i tak dalej.

Zobaczmy, jak to działa na poniższym przykładzie. Tutaj ponownie porównujemy wartość zmiennej o nazwie „wartość”. Następnie sprawdzamy, czy wartość jest równa 1, 2, czy coś zupełnie innego.

Instrukcja zamiany

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 Wyjaśnienie:-

  1. Najpierw definiujemy zmienną o nazwie „wartość” i ustawiamy ją na wartość 11.
  2. Następnie używamy instrukcji „switch”, aby sprawdzić wartość zmiennej „value”.
  3. Instrukcje case służą do ustawiania różnych warunków. W oparciu o warunki można wykonać zestaw instrukcji. Instrukcja switch może zawierać wiele warunków przypadku. Pierwsza instrukcja case sprawdza, czy wartość zmiennej jest równa 1.
  4. Jeśli pierwsza instrukcja case jest prawdziwa, na konsoli zostanie zapisany komunikat „Wartość wynosi 1”.
  5. Instrukcja break służy do przerwania całej instrukcji switch, gdy warunek jest spełniony.
  6. Warunek domyślny jest warunkiem specjalnym. Oznacza to po prostu, że jeśli żadne wyrażenie przypadku nie ma wartości true, uruchom zestaw instrukcji dla warunku domyślnego.

Jeśli powyższy kod zostanie wprowadzony poprawnie i program zostanie wykonany pomyślnie, wyświetlony zostanie następujący wynik. Wynik drukuje domyślną wartość „Value is different”, ponieważ żaden warunek nie jest spełniony.

Wyjście:

Instrukcja zamiany

3) Podczas pętli

Pętla while jest używana do celów iteracyjnych. Załóżmy, że jeśli chcesz powtórzyć określony zestaw instrukcji określoną liczbę razy, wówczas używana jest pętla while.

W naszym przykładzie poniżej używamy instrukcji while do wyświetlenia wartości zmiennej „i”. Instrukcja while służy do trzykrotnego wyświetlenia wartości.

Podczas pętli

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 Wyjaśnienie:-

  1. Dwie liczby całkowite zmienne są zdefiniowane, jedna to wartość, a druga to „i”. Zmienna value służy jako górna granica, do której powinniśmy iterować naszą instrukcję while. A „i” jest zmienną, która będzie przetwarzana podczas iteracji.
  2. W instrukcji while wartość „i” jest stale sprawdzana względem górnej granicy.
  3. Tutaj wyświetlamy wartość „i” na konsoli. Zwiększamy także wartość „i”.

Jeśli powyższy kod został wpisany poprawnie i program zostanie pomyślnie wykonany, wyświetlony zostanie następujący komunikat.

Wyjście:

Podczas pętli

Tutaj widać, że polecenie while jest wykonywane 3 razy i jednocześnie zwiększane. I za każdym razem wyświetlana jest bieżąca wartość zmiennej 'i'.

4) Dla pętli

Pętla „for” jest również używana w celach iteracyjnych. Załóżmy, że chcesz powtórzyć pewien zestaw instrukcji określoną liczbę razy, wtedy użyjesz pętli „for”.

W naszym przykładzie poniżej używamy instrukcji „for” do wyświetlenia wartości zmiennej „i”. Instrukcja „for” służy do trzykrotnego wyświetlenia wartości.

Dla pętli

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 Wyjaśnienie:-

  1. Słowo kluczowe „for” jest używane na początku instrukcji „pętli for”.
  2. W „pętli for” definiujemy 3 rzeczy. Pierwszym z nich jest inicjalizacja wartości zmiennej, która będzie używana w „pętli for”.
  3. Drugim jest porównanie wartości „i” z górną granicą. W naszym przypadku górną granicą jest wartość 3 (i<3).
  4. Na koniec odpowiednio zwiększamy wartość „i”.
  5. Tutaj wyświetlamy wartość „i” na konsoli.

Jeśli powyższy kod został wpisany poprawnie i program zostanie pomyślnie wykonany, wyświetlony zostanie następujący komunikat.

Wyjście:

Dla pętli

Tutaj widać, że polecenie 'for' jest wykonywane 3 razy. I za każdym razem wyświetlana jest bieżąca wartość zmiennej 'i'.

FAQ

Instrukcja if obsługuje zakresy i złożone warunki boolowskie, natomiast instrukcja switch porównuje jedną wartość z kilkoma ustalonymi etykietami przypadków. Instrukcja switch jest bardziej przejrzysta w przypadku wielu wartości dyskretnych, natomiast if-else obsługuje zakresy, wiele zmiennych i operatory logiczne.

Zagnieżdżona instrukcja if umieszcza jedną instrukcję if w drugiej, więc warunek wewnętrzny jest sprawdzany tylko wtedy, gdy warunek zewnętrzny jest prawdziwy. Pozwala to programowi sprawdzić kilka zależnych warunków, chociaż głębokie zagnieżdżenie zmniejsza czytelność.

Pętla while testuje swój warunek przed każdą iteracją, więc może zostać wykonana zero razy. Pętla do-while testuje warunek po treści pętli, więc zawsze zostanie wykonana co najmniej raz, co jest przydatne w przypadku menu i walidacji danych wejściowych.

Instrukcja break natychmiast opuszcza pętlę lub przełącznik, natomiast instrukcja continue pomija resztę bieżącej iteracji i przechodzi do następnej. Obie zmieniają przepływ, ale tylko break całkowicie kończy pętlę.

Operator trójargumentowy ?: to zwarta forma if-else. Ocenia warunek, zwraca pierwszą wartość, gdy warunek jest prawdziwy, i drugą wartość, gdy jest fałszywy, generując zwięzłe, jednowierszowe przypisanie.

Pętla foreach iteruje po każdym elemencie kolekcji, takim jak tablica czy lista, bez potrzeby użycia indeksu ani licznika. Umożliwia bezpieczny odczyt kolekcji i zapobiega typowym błędom typu „off-by-one” i „out-of-range”.

Tak. GitHub Copilot sugeruje bloki if, switch, while i for z komentarza lub nazwy metody w programie Visual Studio i VS Code. Revsprawdź każdą sugestię pod kątem poprawnych warunków i ograniczeń pętli, ponieważ Copilot może wprowadzać błędy typu „off-by-one”.

Potoki ML.NET wykorzystują instrukcje warunkowe języka C# do rozgałęzień na wartościach cech i pętle do iteracji po wierszach treningowych. Ta sama logika if, switch i for przygotowuje dane i kieruje predykcjami.ping silnie typizowany przepływ pracy uczenia maszynowego.

Podsumuj ten post następująco: