Pull to refresh

Visual C# for beginners. Лекция 4. Условия и циклы

Reading time5 min
Views3.2K
Доброго времени суток, хабражители!
Для желающих начать программировать на языке C# выкладываю четвертую лекцию на тему: «Условия и циклы». Лекция получилась очень большая (на целый час), поэтому, кто готов смотреть так долго я желаю терпения и большого желания не останавливаться на достигнутом.

Ссылки на предыдущие лекции

Лекция 1. Введение
Лекция 2. Hello, World! и знакомство с Visual C# Express 2010
Лекция 3. Переменные и выражения

А сейчас — ответы на предыдущее домашнее задание:
1. Недопустимыми именами для переменных являются: 100metres (так как имя переменной не может начинаться с цифры) и csharp.com (так как имя переменной содержит посторонний символ ".")
2. Строка "thisisveryverylongstringindeedisntit" НЕ является слишком большой, чтобы уместиться в тип string, поскольку память, выделяемая под переменные этого типа динамична и меняется в зависимости от размера.
3. Учитывая приоритет операций выражение: resultVar += var1 * var2 + var3 % var4 / var5;
будет выполняться со следующей последовательностью:
1) *
2) %
3) /
4) +
5) +=

Надеюсь, что проблем с домашней работой у вас не было, многие мне даже присылали ответы на почту, что очень приятно, ну а мы переходим к самому интересному.
Приятного просмотра!



Новое домашнее задание:


1. При наличии двух целых чисел, хранящихся в переменных var1 и var2, какую булевскую проверку нужно выполнить для выяснения того, является ли то или другое (но не оба вместе) больше 10?
2. Напишите приложение, которое получает два числа от пользователя и отображает их на экране, но отклоняет варианты, когда оба числа больше 10, и предлагает в таком случае ввести два других числа.
3. Что неверно в следующем коде (постарайтесь решить это задание, не используя Visual Studio)?
  1.       int i = 10;
  2.       for (i = 1; i <= 10; i++)
  3.       {
  4.         if ((i % 2) = 0)
  5.           continue;
  6.         Console.WriteLine(i);
  7.       }
* This source code was highlighted with Source Code Highlighter.


Ответы, если хотите, можете также присылать мне на почту или просто делать для себя. Также с радостью приму любые советы по улучшению курса. Для небольшого бонуса прошу читать ниже.

Примеры кода, которые были использованы в лекции.



1. Применение булевских операций

  1.     static void Main(string[] args)
  2.     {
  3.       int myInt;
  4.       Console.WriteLine("Enter an integer:"); // Введите целое число
  5.       Int32.TryParse(Console.ReadLine(), out myInt);
  6.       Console.WriteLine("Integer less than 10? {0}", myInt < 10);
  7.       Console.WriteLine("Integer between 0 and 5? {0}", (myInt >= 0) && (myInt <= 5));
  8.       Console.ReadKey();
  9.     }
* This source code was highlighted with Source Code Highlighter.


2. Применение операторов goto, if else, ?: (тернарный оператор)

  1.     static void Main(string[] args)
  2.     {
  3.       string result = String.Empty;
  4.       double var1 = 0, var2 = 0;
  5.  
  6.       begin1:
  7.       Console.WriteLine("Enter first number:");
  8.       if (!Double.TryParse(Console.ReadLine(),out var1)) // здесь я упростил код просто поставив "!" перед выражением bool
  9.       {
  10.         Console.WriteLine("You should enter a double value.");
  11.         goto begin1;
  12.       }
  13.  
  14.       begin2:
  15.       Console.WriteLine("Enter second number:");
  16.       if (!Double.TryParse(Console.ReadLine(), out var2))
  17.       {
  18.         Console.WriteLine("You should enter a double value.");
  19.         goto begin2;
  20.       }
  21.  
  22.       if (var1 < var2)
  23.         result = "less than";
  24.       else
  25.       {
  26.         result = var1 == var2 ? "equal to" : "greater than";
  27.       }
  28.  
  29.       Console.WriteLine("The first number is {0} the second number.", result);
  30.       Console.ReadKey();
  31.     }
* This source code was highlighted with Source Code Highlighter.


3. Применение оператора switch

  1.     static void Main(string[] args)
  2.     {
  3.       const int fail = 10;
  4.       int value = 0;
  5.  
  6.       switch (value)
  7.       {
  8.         case 1:
  9.           Console.WriteLine("This is one");
  10.           break;
  11.         case 2:
  12.           Console.WriteLine("This is two");
  13.           break;
  14.         case fail:
  15.           Console.WriteLine("This is fail");
  16.           break;
  17.         default:
  18.           Console.WriteLine("This is default");
  19.           break;
  20.       }
  21.     }
* This source code was highlighted with Source Code Highlighter.


4. Применение циклов

  1.     static void Main(string[] args)
  2.     {
  3.       double balance = 0, interestRate = 0, targetBalance = 0;
  4.       Console.WriteLine("What is your current balance?");
  5.       Double.TryParse(Console.ReadLine(), out balance);
  6.       Console.WriteLine("What is your current interest rate (in %)?");
  7.       Double.TryParse(Console.ReadLine(), out interestRate);
  8.       interestRate = 1 + interestRate/100.0;
  9.       Console.WriteLine("What balance would you like to have?");
  10.       Double.TryParse(Console.ReadLine(), out targetBalance);
  11.  
  12.       int totalYears = 0;
  13.  
  14.       while (balance < targetBalance)
  15.       {
  16.         balance *= interestRate;
  17.         totalYears++;
  18.       }
  19.  
  20.       Console.WriteLine("In {0} year{1} you will have a balance of {2}.", totalYears,
  21.         totalYears == 1 ? "" : "s", balance);
  22.       Console.ReadKey();
* This source code was highlighted with Source Code Highlighter.
Tags:
Hubs:
Total votes 22: ↑14 and ↓8+6
Comments17

Articles