Вернёмся к условиям. Существует ещё один интересный вариант написания условий. Его называют альтернативным. Главным отличием от обычного условия в том, что альтернативные всегда возвращают значения. Работают они как функции smile Синтаксис альтернативных условий таков:
ВозвращающийПраметр = ( Условие ) ? КодВыполняемыйКогдаУсловиеИстинно : КодВыполняемыйКогдаУсловиеЛожно ;
Возьмём функцию с предыдущего урока и назовём её ValueOperation. Добавим в параметры ещё символьный тип - char. Теперь функция принимает два числа и символ. Для чего нужен символ спросите вы? Что бы в зависимости от указанного символа эти числа выполняли разные арифметические операции. Сама функция теперь будет выглядеть так:
public static void ValueOperation(float x, float y, char c) {
     float d;

     Console.WriteLine("Результат: Дробное {0}", d );
}
Мы заведём переменную, которая будет принимать результат альтернативного условия. Теперь напишем код условия:
d = ( c == '+' ) ? x + y : d = ( c == '-' ) ? x - y :d = ( c == '*' ) ? x * y : d = ( c == '/' ) ? x / y : -1;
Согласно условию, если в параметр c равный +, то результатом условия будет сумма двух чисел. Если символ равен -, то будет вычитание и.т.п. если символ не соответствует ни одному условию, то результатом будет -1. Я перенёс строки условия, что бы его было легче прочитать и теперь наша программа имеет следующий вид:
using System;

namespace Consol {
    class Program {
        static void Main() {
            ValueOperation( 10, 15, '+' );
            ValueOperation( 30, 15.5F, '-' );
            ValueOperation( -100.0F, 50.0F, '*' );
            ValueOperation( 20.0F, 2.0F, '/' );
            Console.ReadKey();
        }

        public static void ValueOperation(float x, float y, char c) {
            float d;
            d = ( c == '+' ) ? x + y :
            d = ( c == '-' ) ? x - y :
            d = ( c == '*' ) ? x * y :
            d = ( c == '/' ) ? x / y : -1;
            Console.WriteLine("Результат: {0}\t {1}", c, d);
        }
    }
}
Результат выполнения программы:

В прочем альтернативные условия я вижу в крайне редко, так как существуют такие вещи как switch, перегрузка операторов и прочие интересные вещи. Но об этом способе вы должны знать. Когда-нибудь пригодится smile
Вход на сайт

Поиск
Категории раздела
Мини-чат
Наш опрос
Что скажете о новом дизайне?
Всего ответов: 0
Активность на сайте
Друзья сайта
Статистика

Онлайн всего: 2
Гостей: 1
Пользователей: 1
wmysterio
Сегодня нас посетили:
wmysterio