Uint countEvenNumbers = 0; // Чётные числа
uint countOddNumbers = 0; // Нечётные числа
int sumEvenNumbers = 0; // Сумма чётных чисел
int sumOddNumbers = 0; // Сумма нечётных чисел
int Start; Console.WriteLine("Введите начало диапазона: "); Start = int.Parse(Console.ReadLine());
int End; Console.WriteLine("Введите конец диапазона: "); End = int.Parse(Console.ReadLine());
while (Start <= End)
{
if (Start % 2 == 0)
{
countEvenNumbers++;
sumEvenNumbers += Start;
}
else
{
countOddNumbers++;
sumOddNumbers += Start;
}
Start++;
}
Console.WriteLine("Количество чётных чисел = " + countEvenNumbers);
Console.WriteLine("Количество нечётных чисел = " + countOddNumbers);
Console.WriteLine("Сумма чётных чисел = " + sumEvenNumbers);
Console.WriteLine("Сумма нечётных чисел = " + sumOddNumbers);
Console.ReadKey();
C#
Можно ли решить задачку используя вместо if else " SWITCH " , и когда лучше что использовать ?
switch применяют, когда условий как минимум больше двух (иначе смысла не имеет).
switch применяют, когда переменную можно сопоставить с шаблоном, или константой. Если условие требует вычислений, то switch не нужен (не скомпилируется).
Если switch повышает читаемость кода, показывает намерение в дальнейшем добавлять новые условия, то лучше его и использовать.
Компилятор может оптимизировать switch и превратить его в хеш-таблицу, что будет работать быстрее, чем куча if-else. Если условий очень много, то имеет смысл задуматься над этим.
switch применяют, когда переменную можно сопоставить с шаблоном, или константой. Если условие требует вычислений, то switch не нужен (не скомпилируется).
Если switch повышает читаемость кода, показывает намерение в дальнейшем добавлять новые условия, то лучше его и использовать.
Компилятор может оптимизировать switch и превратить его в хеш-таблицу, что будет работать быстрее, чем куча if-else. Если условий очень много, то имеет смысл задуматься над этим.
Mikom Mikom
Спасибо, основное, что хотел узнать это то, что switch не используется для вычислений, значит не получится у меня сделать тоже самое со switch :)
Оператор switch может иметь смысл, если мы сравниваем значение одной и той же переменной с несколькими наперед известными вариантами. Если вариантов три или больше, то switch может выглядеть опрятнее, чем серия условиях операторов.
if (Start % 2 == 0) { … }
else { … }
можно было бы записать так:
int ostatok = Start % 2;
switch (ostatok) {
case 0: …
break;
default: …
break;
}
Но толку от этого я не вижу.
if (Start % 2 == 0) { … }
else { … }
можно было бы записать так:
int ostatok = Start % 2;
switch (ostatok) {
case 0: …
break;
default: …
break;
}
Но толку от этого я не вижу.
uint oddNumbersCount = 0; // нечетные числа
uint evenNumberCount = 0; // четные числа
Console.WriteLine("Введите первое число диапазона");
int minValue = int.Parse(Console.ReadLine());
Console.WriteLine("Введите последнее число диапазона");
int maxValue = int.Parse(Console.ReadLine());
while (minValue <= maxValue) // если мин. число меньше или равно макс. то цикл продолжается
{
if (minValue % 2 == 0) // если мин. число делится на 2 без остатка, то выполняется - кол-во чет. чисел + 1
{
evenNumberCount++;
}
else // если же это условие не выполняется, то выполняется - кол-во нечет. чисел + 1
{
oddNumbersCount++;
}
minValue++; // затем снова прибавляем к мин. числу + 1 и сравниваем его (начало цикла)
}
Console.WriteLine("Количество нечетных чисел: " + oddNumbersCount);
Console.WriteLine("Количество четных чисел: " + evenNumberCount);
Console.ReadLine();
Так лучше)
А то у тебя куча лишних строк
uint evenNumberCount = 0; // четные числа
Console.WriteLine("Введите первое число диапазона");
int minValue = int.Parse(Console.ReadLine());
Console.WriteLine("Введите последнее число диапазона");
int maxValue = int.Parse(Console.ReadLine());
while (minValue <= maxValue) // если мин. число меньше или равно макс. то цикл продолжается
{
if (minValue % 2 == 0) // если мин. число делится на 2 без остатка, то выполняется - кол-во чет. чисел + 1
{
evenNumberCount++;
}
else // если же это условие не выполняется, то выполняется - кол-во нечет. чисел + 1
{
oddNumbersCount++;
}
minValue++; // затем снова прибавляем к мин. числу + 1 и сравниваем его (начало цикла)
}
Console.WriteLine("Количество нечетных чисел: " + oddNumbersCount);
Console.WriteLine("Количество четных чисел: " + evenNumberCount);
Console.ReadLine();
Так лучше)
А то у тебя куча лишних строк
Похожие вопросы
- Почему "y" не присвоено значение?
- Помогите решить задачу C#! С помощью switch case.
- Используя интегрированную среду разработки Microsoft Visual Studio создать два консольных приложения
- System.InvalidCastException: "Unable to cast object of type 'System.String[]' to type 'System.IConvertible'."
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
- Задача с массивами на С#. Я Создала массив, но он просто выводит повторно то, что я ввела. Как это можно решить?
- Решить текстовую задачу с использованием словаря на C#
- Помогите решить простую задачу на c#
- Помогите решить задачу на С#
- Помогите решить задачу на с#