using System;
class Exercises
{
	enum numericCondition
	{
		even,
		multiple,
		odd,
		tooBig,
		unknown,
		zero,
	};

	static void Main()
	{
		// Możliwe warunki wejściowe

		while (true)
		{
			// Wpisanie symbolu innego niż liczby spowoduje zgłoszenie wyjątku.
			// W tym prostym przykładzie nie ma obsługi błędów
			Console.Write("Proszę wpisać liczbę: ");
			string theEntry = Console.ReadLine();
			int theNumber = Convert.ToInt32(theEntry);
			Console.Write("Zagnieżdżona instrukcja if {0}: ", theNumber);

			// Logika: jeśli liczba jest większa od 100, program stwierdza, że jest za duża;
			// jeśli jest parzysta, ale nie jest wielokrotnością 10, program stwierdza, że jest parzysta;
			// jeśli jest wielokrotnością 10, program informuje o tym;
			// jeśli liczba nie jest parzysta, program stwierdza, że jest nieparzysta
			if (theNumber <= 100)
			{
				if (theNumber % 2 == 0)
				{
					if (theNumber == 0)
					{
						Console.WriteLine("Zero nie jest ani parzyste, ani nieparzyste, " +
											"ani nie jest wielokrotnością 10");
					}
					else
					{
						if (theNumber % 10 == 0)
						{
							Console.WriteLine("Wpisałeś wielokrotność 10");
						}
						else
						{
							Console.WriteLine("Podana liczba jest parzysta");
						} // Koniec „else dla nie jest wielokrotnością 10”
					}    // Koniec „else dla nie jest zerem”
				}       // Koniec „if dla liczb parzystych”
				else
				{
					Console.WriteLine("Co za nieparzysta liczba");
				}
			} // Koniec „if dla liczb, które nie są za duże”
			else
			{
				Console.WriteLine("Podana liczba jest za duża. ");
			}

			Console.Write("Instrukcja Switch {0}: ", theNumber);

			// Ta sama logika — inna implementacja.
			// Ustawienie warunku na wartość wyliczenia
			numericCondition condition = numericCondition.odd;
			condition = (theNumber % 2 == 0) ?
			   numericCondition.even : numericCondition.odd;
			if (theNumber % 10 == 0) condition = numericCondition.multiple;
			if (theNumber == 0) condition = numericCondition.zero;
			if (theNumber > 100) condition = numericCondition.tooBig;

			// Sprawdzanie warunku i wyświetlanie odpowiedniego komunikatu
			switch (condition)
			{
				case numericCondition.even:
					Console.WriteLine("Podana liczba jest parzysta");
					break;
				case numericCondition.multiple:
					Console.WriteLine("Wybrałeś wielokrotność 10");
					break;
				case numericCondition.odd:
					Console.WriteLine("Co za nieparzysta liczba");
					break;
				case numericCondition.tooBig:
					Console.WriteLine("Podana liczba jest za duża");
					break;
				case numericCondition.zero:
					Console.WriteLine("Zero nie jest parzyste, ani nieparzyste, " +
									   "ani nie jest wielokrotnością 10");
					break;
				default:
					Console.WriteLine("Nie rozumiem wpisanej wartości");
					break;
			}
		}
	}
}

