Конструкция if в if'e на c#.

  • Автор темы Автор темы impul5e
  • Дата начала Дата начала

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Реакции
40
Баллы
28
Подскажите, как должна выглядеть конструкция кода на c# и вообще возможно ли это реализовать? Логика на кубиках отображена ниже на картинке:80975
Заранее благодарю за ответ.
 
if(var1=="true"){
if(var2>var3){
действие1
if(var4=="true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
}
else{
действие2
if(var4=="true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
}
else if(var4 == "true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
else{
действие
}
Как то так.
 
Последнее редактирование:
  • Оценить
Реакции: impul5e
if(var1=="true"){
if(var2>var3){
действие1
if(var4=="true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
}
else{
действие2
if(var4=="true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
}
else if(var4 == "true"){
if(var5>var6){
действие3
}
else{
действие4
}
}
else{
действие
}
Как то так.
 
  • Оценить
Реакции: impul5e
C#:
Развернуть Свернуть Копировать
int Var2 = 2;
int Var3 = 1;
int Var5 = 5;
int Var6 = 6;
bool Var1 = true;
bool Var4 = true;

if (!Var1) // if  not True
{
    if (!Var4) // if not True
    { return "Действие."; }
}

if (Var2 > Var3)  // 2 > 1
{
    project.SendInfoToLog("Действие 1");

    if (!Var4)  // if not True
    {  return "Действие."; }
    else
    {
        if (Var5 > Var6)  // 5 > 6
        { return "Действие3."; }
        else
        { return "Действие4.";  }
    }
}

// end

Покороче (мб с ошибкой но суть передана если всмотреться
C#:
Развернуть Свернуть Копировать
int Var2 = 2;
int Var3 = 1;
int Var5 = 5;
int Var6 = 6;
bool Var1 = true;
bool Var4 = true;

if (!Var1) // if  not True
{
    if (!Var4) return "Действие."; // if not True
}

if (Var2 > Var3)  // 2 > 1
{
    project.SendInfoToLog("Действие 1");
    if (!Var4)  return "Действие.";  // if not True
    if (Var5 > Var6) return "Действие3.";   // 5 > 6
{ return "Действие4.";  }
}

// end


Ну и в работе
 
Последнее редактирование:
  • Оценить
Реакции: impul5e и Juniorcpa
C#:
Развернуть Свернуть Копировать
int Var2 = 2;
int Var3 = 1;
int Var5 = 5;
int Var6 = 6;
bool Var1 = true;
bool Var4 = true;

if (!Var1) // if  not True
{
    if (!Var4) // if not True
    { return "Действие."; }
}

if (Var2 > Var3)  // 2 > 1
{
    project.SendInfoToLog("Действие 1");

    if (!Var4)  // if not True
    {  return "Действие."; }
    else
    {
        if (Var5 > Var6)  // 5 > 6
        { return "Действие3."; }
        else
        { return "Действие4.";  }
    }
}

// end

Покороче (мб с ошибкой но суть передана если всмотреться
C#:
Развернуть Свернуть Копировать
int Var2 = 2;
int Var3 = 1;
int Var5 = 5;
int Var6 = 6;
bool Var1 = true;
bool Var4 = true;

if (!Var1) // if  not True
{
    if (!Var4) return "Действие."; // if not True
}

if (Var2 > Var3)  // 2 > 1 //если !var1, то сравнивать var2 > var3 далее, мягко говоря неуместно. 
{// и в этой конструкции мы можем так и не попасть на var4
    project.SendInfoToLog("Действие 1");
    if (!Var4)  return "Действие.";  // if not True
    if (Var5 > Var6) return "Действие3.";   // 5 > 6
{ return "Действие4.";  }
}

// end


Ну и в работе
Кручу-верчу - запутать хочу) В итоге не работает корректно.
если !var1, то сравнивать var2 > var3 далее, мягко говоря неуместно, особенно, если оно еще и что-то решает, как в этой конструкции, ведь мы можем так и не попасть на var4
C#:
Развернуть Свернуть Копировать
int var2 = 2;
int var3 = 1;
int var5 = 5;
int var6 = 6;
bool var1 = true;
bool var4 = true;
if(var1){
    if(var2 > var3){
        project.SendInfoToLog("Действие1.");
    }
    else{
        project.SendInfoToLog("Действие2.");
    }
}
if(var4){
    if(var5 > var6){
        project.SendInfoToLog("Действие3.");
    }
    else{
        project.SendInfoToLog("Действие4.");
    }
}
else project.SendInfoToLog("Действие.");
 
  • Оценить
Реакции: Juniorcpa и impul5e
Кручу-верчу - запутать хочу) В итоге не работает корректно.
если !var1, то сравнивать var2 > var3 далее, мягко говоря неуместно, особенно, если оно еще и что-то решает, как в этой конструкции, ведь мы можем так и не попасть на var4
C#:
Развернуть Свернуть Копировать
int var2 = 2;
int var3 = 1;
int var5 = 5;
int var6 = 6;
bool var1 = true;
bool var4 = true;
if(var1){
    if(var2 > var3){
        project.SendInfoToLog("Действие1.");
    }
    else{
        project.SendInfoToLog("Действие2.");
    }
}
if(var4){
    if(var5 > var6){
        project.SendInfoToLog("Действие3.");
    }
    else{
        project.SendInfoToLog("Действие4.");
    }
}
else project.SendInfoToLog("Действие.");

сам то сказал что понял?
следи за циферками (номера строк первого листинга)...
 

Вложения

  • 5E614CD2-0090-4C18-9C6F-58A37BF809A3.jpeg
    5E614CD2-0090-4C18-9C6F-58A37BF809A3.jpeg
    44,1 KB · Просмотры: 22
  • Оценить
Реакции: impul5e
сам то сказал что понял?
следи за циферками (номера строк первого листинга)...
Долго смотрел на картинку и ничего не понял. Но по Вашему коду видно, что если Var2 будет меньше, чем Var3, то сравнения Var5 > Var6 уже не следует ожидать. Поправьте, с примером, пожалуйста, если ошибаюсь.
Поиграться с примерами https://dotnetfiddle.net/NyklcC
 
Последнее редактирование:
  • Оценить
Реакции: impul5e
нахрена попу гармонь?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)