GVKun编程网logo

替换嵌套的if语句(替代if嵌套函数)

2

如果您想了解替换嵌套的if语句和替代if嵌套函数的知识,那么本篇文章将是您的不二之选。我们将深入剖析替换嵌套的if语句的各个方面,并为您解答替代if嵌套函数的疑在这篇文章中,我们将为您介绍替换嵌套的i

如果您想了解替换嵌套的if语句替代if嵌套函数的知识,那么本篇文章将是您的不二之选。我们将深入剖析替换嵌套的if语句的各个方面,并为您解答替代if嵌套函数的疑在这篇文章中,我们将为您介绍替换嵌套的if语句的相关知识,同时也会详细的解释替代if嵌套函数的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

替换嵌套的if语句(替代if嵌套函数)

替换嵌套的if语句(替代if嵌套函数)

这与漂亮代码中的一章有关。在这一章中,我读到了有关嵌套ifs的信息。

有人能说明如何if使用caseselect case)和决策表删除嵌套的s 吗?

答案1

小编典典

好吧,由于您专门询问了switch / case语句,因此不是直接回答您的问题,而是一个类似的问题。

反转“ if”语句以减少嵌套

这是关于用早期返回的保护语句替换嵌套的if,而不是在确定返回值之前逐步检查越来越多的事物。

3.2.3if语句的嵌套2

3.2.3if语句的嵌套2

  以本题为例,来学习if语句的嵌套。  

  1.输入三角形的三条边长,求三角形的周长和面积,若不能构成三角形,输出提示。

  2根据用户输入的三角形的三条边长判定是何种三角形(一般三角形、正三角形、

等腰三角形、直角三角形)。

=================猥琐发育,别浪,骚年!===========================

 

第一题是简单的if语句,代码如下:

 

 1 # include <stdio.h>
 2 main()
 3 {
 4     int a,b,c,d;                   //a,b,c分别是三角形的三条边,d是三角形的周长。
 5     printf("输入三角形的三条边:\n");
 6     scanf("%d%d%d",&a,&b,&c);
 7     if(a+b>c&&a+c>b&&b+c>a)  //构成三角形的条件是两边之和大于第三边;这里请注意是并且关系,不是或关系。
 8     {d=a+b+c;              //这里求周长。
 9     printf("三角形的周长是:%d",d);}
10     else
11     printf("i''m sorry,构不成三角形!");
12 }

第二题是第一题的拓展,代码如下:

 1 # include <stdio.h>
 2 main()
 3 {
 4     int a,b,c,d;
 5     printf("输入三角形的三条边:\n");
 6     scanf("%d%d%d",&a,&b,&c);
 7     if(a+b>c&&a+c>b&&b+c>a)
 8     {
 9         if(a==b==c)
10             {d=a+b+c;
11             printf("此三角形是全等三角形。\n");
12             printf("三角形的周长是:%d",d);}
13         if(a==b||a==c||b==c)
14             {d=a+b+c;
15             printf("此三角形是等腰三角形。\n");
16             printf("三角形的周长是:%d",d);}
17         if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
18             {d=a+b+c;
19             printf("此三角形是直角三角形。\n");
20             printf("三角形的周长是:%d",d);}
21         else
22             {d=a+b+c;
23             printf("此三角形是普通三角形。\n");
24             printf("三角形的周长是:%d",d);}}
25     else
26     printf("i''m sorry,构不成三角形!");
27 }

上面则是if……else……与if……else……的嵌套,这里需要注意的是if与else的搭配问题,

else与其上最近的if配对!!{  }的配对,千万别配错了。骚年们!!

c – 尝试优化我的if语句

c – 尝试优化我的if语句

我目前正在用C创建我的第一个游戏,我有一个if语句看起来像这样,它很长很不方便,我真的认为有一个更短,更优化的方式来做这个和这就是我需要的帮助.

编辑:数据类型是一个不可或缺的,抱歉这带来了任何不便.我得到了答案,尽管它很简单!节日快乐!

if (rectangle == 1 ||
    rectangle == 2 ||
    rectangle == 3 ||
    rectangle == 4 ||
    rectang... and so on

解决方法

尝试:

if(rectangle >= 1 && rectangle <= maxRectangle)
    doSomething();

c# – 如何将嵌套的三元运算符转换为嵌套的if-else语句?

c# – 如何将嵌套的三元运算符转换为嵌套的if-else语句?

我很难将以下C#代码转换为if-else语句,这样我就能理解业务逻辑.任何人都可以帮助我,检查我的转换是否正常?

码:

dateInit = objInstance == null ? (DateTime?)null:
                objInstance.DateAnt == null ?
                    objInstance.DatePost > otherObjInstance.DateCon ?
                        (DateTime?)null :
                        objInstance.DatePost :
                objInstance.DateAnt;

我的转换:

if (objInstance == null)
{
    dateInit = (DateTime?)null;
}
else
{
    if (objInstance.DateAnt == null)
    {
        if (objInstance.DatePost > otherObjInstance.DateCon)
        {
            dateInit = (DateTime?)null;
        }
        else
        {
            dateInit = objInstance.DatePost;
        }
    }
    else
    {
        dateInit = objInstance.DataAnt;
    }
}

解决方法

您的转化似乎是正确的.但是,我会以两种方式改进它.

首先,在if表单中不需要null的强制转换. (?:运算符对结果和替代位置中可能出现的类型有一定的限制,这会导致开发人员插入强制转换.)

其次,if语句不必要地嵌套.整个事情可以表达得更加可读:

if (objInstance == null)
  dateInit = null;
else if (objInstance.DateAnt != null)
  dateInit = objInstance.DataAnt;
else if (objInstance.DatePost > otherObjInstance.DateCon)
  dateInit = null;
else
  dateInit = objInstance.DatePost;

从这个版本开始,业务逻辑比我认为的版本更容易理解.

我们可以使用两个规则进行转换.第一:

if (x)
  X
else 
{
  if (y)
    Y
  else
    Z
}

是相同的

if (x)
  X
else if (y)
  Y
else
  Z

这在页面上更简单.

第二个:

if (x)
{
  if (y)
    Y
  else
    Z
}
else
  NX

是相同的

if (!x)
  NX
else 
{
  if (y)
    Y
  else
    Z
}

现在我们再次处于第一种情况,可以进一步简化.

通过重复组合这些规则,您可以简化许多复杂的if-else语句.

c# – 嵌套的内联IF语句

c# – 嵌套的内联IF语句

我有点困惑为什么这不起作用:

id = (isChar ? (id + 1 > 122 ? 65 : id++) : id++);

这里的输入可以是转换为INT的int或char.然后我递增id并增加int或char.问题是,当我输入一个字符时,数字似乎没有改变?

解决方法

在两种情况下都将id更改为id 1.你正在丢弃最后执行的赋值增量的变化.

作为一般规则,避免复杂表达式中的副作用(例如).他们使整个表达难以处理.这让你绊倒了.

更好的是,事先增加id,因为你似乎总是增加它:

id += 1;
if (isChar && id > 122)
    id = 65;

要么

id = (isChar && id > 121) ? 65 : id + 1;

今天关于替换嵌套的if语句替代if嵌套函数的介绍到此结束,谢谢您的阅读,有关3.2.3if语句的嵌套2、c – 尝试优化我的if语句、c# – 如何将嵌套的三元运算符转换为嵌套的if-else语句?、c# – 嵌套的内联IF语句等更多相关知识的信息可以在本站进行查询。

本文标签: