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
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
Кручу-верчу - запутать хочу) В итоге не работает корректно.Покороче (мб с ошибкой но суть передана если всмотреться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
Ну и в работе
If_Else_Example | C# Online Compiler | .NET Fiddle
If_Else_Example | Test your C# code online with .NET Fiddle code editor.dotnetfiddle.net
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("Действие.");
сам то сказал что понял?Кручу-верчу - запутать хочу) В итоге не работает корректно.
если !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("Действие.");
Долго смотрел на картинку и ничего не понял. Но по Вашему коду видно, что если Var2 будет меньше, чем Var3, то сравнения Var5 > Var6 уже не следует ожидать. Поправьте, с примером, пожалуйста, если ошибаюсь.сам то сказал что понял?
следи за циферками (номера строк первого листинга)...