Допустим есть чисто прикладная задача: сортировка пузырьком в трехмерном массиве.
for (int i = 0; i < arr1.Rank; i++)
{
for (int j = 0; j < arr1.Rank; j++)
{
for (int l = 0; l < arr1.Rank; l++)
{
if (arr1[i, j, l] < arr1[i-1, j, l] || arr1[i, j, l] < arr1[i , j-1, l] || arr1[i, j, l] < arr1[i , j, l-1])
{
byte tmp = arr1[i, j, l];
arr1[i, j, l] = array[i - 1];
array[i - 1] = tmp;
}
}
}
}
Меня интересует вот эта часть :
if (arr1[i, j, l] < arr1[i-1, j, l] || arr1[i, j, l] < arr1[i , j-1, l] || arr1[i, j, l] < arr1[i , j, l-1])
{
byte tmp = arr1[i, j, l];
arr1[i, j, l] =
- если я пишу if одной конструкцией -то, что мне подставлять в эту строку arr1[i, j, l] = ? arr1[i , j-1, l] или arr1[i, j, l] или arr1[i , j,l-1]) ? - т.е. как обратиться непосредственно к if у узнать результат операции в данном случае?
if - условный оператор, не возвращающий каких-либо значений.
Возможность такое сделать есть, но учтите: её использование не является хорошим тоном.
Вместо использования этого метода рекомендую разделить блок if на 3 блока, содержащих лишь по одному условию. Если часть тела этого if-а используется несколько раз, можно использовать inline функции.
int from;
if ((arr1[i, j, l] < arr1[i-1, j, l] && Convert.ToBoolean(from = 1)) || (arr1[i, j, l] < arr1[i , j-1, l] && Convert.ToBoolean(from = 2)) || (arr1[i, j, l] < arr1[i , j, l-1] && Convert.ToBoolean(from = 3)))
{
byte tmp = arr1[i, j, l];
arr1[i, j, l] = array[i - 1];
array[i - 1] = tmp;
}
При выполнении одного из основных условий (таковыми назовём условия проверки, предоставленные Вами) выполняется дополнительное, цель которого - присвоить значение временной переменной.
Конвертация в boolean делается для того, чтобы код работал (int не является логическим типом, а с помощью конвертации преобразуется в bool, где всегда означает true, главное не присваивать переменной from значение 0, тогда конвертация преобразует его в false).
В данном случае временная переменная from хранит номер условия, которое "пустило" выполнение в if.
Успехов!
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости