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

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Благодарностей
40
Баллы
28
Подскажите, как должна выглядеть конструкция кода на c# и вообще возможно ли это реализовать? Логика на кубиках отображена ниже на картинке:80975
Заранее благодарю за ответ.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
482
Благодарностей
180
Баллы
43
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

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Благодарностей
40
Баллы
28
Супер! То, что надо!
 

Juniorcpa

Client
Регистрация
27.05.2014
Сообщения
2 031
Благодарностей
1 286
Баллы
113
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

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
118
Баллы
43
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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
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

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
118
Баллы
43
Кручу-верчу - запутать хочу) В итоге не работает корректно.
если !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("Действие.");
сам то сказал что понял?
следи за циферками (номера строк первого листинга)...
 

Вложения

  • Спасибо
Реакции: impul5e

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
сам то сказал что понял?
следи за циферками (номера строк первого листинга)...
Долго смотрел на картинку и ничего не понял. Но по Вашему коду видно, что если Var2 будет меньше, чем Var3, то сравнения Var5 > Var6 уже не следует ожидать. Поправьте, с примером, пожалуйста, если ошибаюсь.
Поиграться с примерами https://dotnetfiddle.net/NyklcC
 
Последнее редактирование:
  • Спасибо
Реакции: impul5e

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 634
Благодарностей
963
Баллы
113
нахрена попу гармонь?
 

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