如果条件1满足,输出1==1,否则输出1!==1;如果条件2满足,输出2==2,否则输出2!==2;如果条件3满足,输出3==3,否则输出3!==3。首先判断每个条件是否满足,然后执行相应的代码,三个条件都要判断,每个条件满足与否都有要执行的代码。
我的并列的if语句是: if(条件1满足)
 {
   Response.Write("1==1"); 
 }
 else
 {
   Response.Write("1!==1"); 
 } if(条件2满足)
 {
     Response.Write("2==2"); 
 }
 else
 {
     Response.Write("2!==2"); 
 } if(条件3满足)
 {
     Response.Write("3==3"); 
 }
 else
 {
     Response.Write("3!==3"); 
 }转换成等效的嵌套的if语句怎样写呢?
我写成下面的样子是不行的,因为当条件1不满足时,就不会判断条件2和条件3是否满足了。请问等效的嵌套的if语句怎样写呢?
if(条件1满足)
{
    Response.Write("1==1");
    if(条件2满足)
    {
        Response.Write("2==2"); 
        if(条件3满足)
        {
            Response.Write("3==3");
        }
        else
        {
            Response.Write("3!=3");
        }
    }
    else
    {
        Response.Write("2!=2");
    }
}
else
{
    Response.Write("1!==1");
}

解决方案 »

  1.   

    winsor_w:
    你的条件是并列的?
    不存在嵌套的条件,怎么用嵌套语句呢?
    ---------------------------------
    条件1满足的情况是:开始时间(StartTime)大于9时且小于12时,结束时间(EndTime)大于9时且小于12时;条件2满足的情况是:开始时间(StartTime)大于12时且小于18时,结束时间(EndTime)大于12时且小于18时;条件3满足的情况是:开始时间(StartTime)大于18时且小于23时,结束时间(EndTime)大于18时且小于23时。
    这样的条件是并列的还是嵌套的?能写成嵌套的if语句吗?(我认为既能当成并列的也能当成嵌套——不知道对不对?)fankaijian() :
    用swith...case啊
    ---------------------------------
    swith后面括号中的参数应该是1个吧,而我的是StartTime和EndTime两个参数呀!而且在每个case右边应该是一个具体的数值或常量,而我的条件是一个时间区域(如:9时到12时),这好像不能出现在case的右边吧。不知道我的分析对不对?请大家继续帮我指点一下。先谢谢了!!!
      

  2.   

    你这前面的条件成立的时候,后面的肯定不会成立了
    可以这么写
    if(StartTime>9&&StartTime<=12)&&(EndTime>9&&EndTime<=12)
    {
        处理输出
    }
    else
    {
        处理输出;
        if(条件2)
          {}
        else
          {
           if(条件3)
               {}
            else
                {}
            }
    }
      

  3.   

    我都是千方百计将嵌套if改为非嵌套的,现在还有人喜欢简单问题复杂化么?你对问题的描述有逻辑语病,按照你的描述,仅仅判断条件1就够了。我们暂且根据你后边的描述来理解,条件1、2、3有顺序关系,那么程序应该这样写:void func()
    {
       if(条件1满足)
       {
           Response.Write("1==1"); 
           return;
        }
     
        Response.Write("1!==1"); 
        if(条件2满足)
        {
            Response.Write("2==2"); 
            return;
        }
     
        Response.Write("2!==2"); 
        if(条件3满足)
        {
            Response.Write("3==3"); 
            return;
        }    Response.Write("3!==3"); 
    }
      

  4.   

    嵌套if过多,本来小聪明的代码就变为耍聪明的代码了,造成读写相当困难。应该使用函数来划分逻辑功能,并且删除“else if”来简化代码。
      

  5.   

    如果按照你后边的代码,那么应该整理为:void func3()
    {
      if(条件3满足)
      {
          Response.Write("3==3");
      }
      else
      {
          Response.Write("3!=3");
      }
    }void func2()
    {
      if(条件2满足)
      {
          Response.Write("2==2"); 
          func3();
      }
      else
      {
          Response.Write("2!=2");
      }
    }void func1()
    {
      if(条件1满足)
      {
          Response.Write("1==1");
          func2();
      }
      else
      {
          Response.Write("1!==1");
      }
    }