如果否则阻止创建问题

时间:2009-08-01 07:17:20

标签: c#

我有一段代码,其中我有一个if块,当满足流进入它并且在那里有嵌套if和else,如果它不满足任何if块它应该进入else块但我面临的问题是它满足一个if块然后进入其他地方。这是在我的代码中创建冗余。 就像这样

 if(condition = true)
 {
    if(condition1 == true)
       {}
    if(condition2 == true)
       {}
    else
       {}
 }

现在它满足条件1,然后执行if块操作也进入else。 请帮忙。代码在C#

6 个答案:

答案 0 :(得分:10)

你可能需要这样的东西(注意else if条件2):

if(condition)
{
    if(condition1)
       {}
    else if(condition2)
       {}
    else
       {}
}

您可以在条件中跳过'== true'

答案 1 :(得分:5)

摆脱== true它会导致你在第一行犯的错误。另外,添加else语句。

if (condition) 
{
   if (condition1)  
      { } 
   else if (condition2) 
      { }    
   else 
      { }
}

答案 2 :(得分:3)

正如RaYell所说,你需要额外的“if”块。以下是一个简短而完整的示例:

using System;

public class Test
{
    static void Main()
    {
        bool condition = true;
        bool condition1 = true;
        bool condition2 = false;

        if (condition)
        {
            if (condition1)
            {
                Console.WriteLine("condition1");
            }
            // Note the "else if" here.
            else if (condition2) {
                Console.WriteLine("condition2");
            }
            else 
            {
                Console.WriteLine("neither");
            }
        }
    }
}

这会打印“condition1”,但不会“”。

如果不是你想要的,请澄清你的问题。

答案 3 :(得分:2)

就像这样

if(condition == true) {
  if(condition1 == true) {}
  else if(condition2 == true) {}
  else {}
} 

答案 4 :(得分:2)

雅你可以使用 else 。也可以写 if(condition == true)就像(条件)一样

例如

    int i=2;
    int j=3;
    int k=4;
    bool condition=k>1;
    bool condition1=j<i;
    bool condition2=j>i;

    if (condition)
    {
        if (condition1)
        { }
        else if (condition2)
        { }
        else
        { }
    }

答案 5 :(得分:1)

那么,为什么不在方法中拆分代码,所以你可以这样做:

if( condition)
{
    if( condition1 )
    {
         DoSomethingForSituation1();
    }
    else
    {
         DoSomethingForSituation2();
    }
}
else
{
    DoSomethingForSituation1();
}

另外,当我这样看时,你可以说'条件'是多余的吗? 因为无论哪种方式,条件1在某些情况下总是如此?

if( condition1 )
{
    DoSomethingForSituation1();
}
else if( condition2 )
{
    DoSomethingForSituation2();
}