php do while(false),do{}while(false) 小技巧

本文探讨了如何通过do-while(false)结构替换复杂的if嵌套,以提高代码可读性和简洁性,特别是在处理购物场景中选择商品的逻辑。作者介绍了这种方法在处理多个条件时的优势,并提到了其在实际应用中的局限性和可能带来的误解。
摘要由CSDN通过智能技术生成

举个例子:你去商店买裙子,进入商店后发现只有一条(假设哈)。你想要红色的连衣裙。有个Check函数,以商店的裙子作为参数,检查它是否符合你的要求。符合则付钱,然后离开,不符合直接离开。

那么正常情况的代码如下:

bool Check( item )

{

if( 是连衣裙 )

if(是红色)

if(合身)

{

付钱

}

离开商店

}

当条件不适合的时候,就要跳过付钱环节,但离开商店是必须得做的。是不是觉得这个if的嵌套太复杂呢?如果还不明显,你可以在条件中再加入价钱等其他更多的条件,这样,这个深层次的if嵌套就很不美观了。(换用否定条件也不能改变if的嵌套)

而如果使用do-while(false),则可去除这种嵌套。代码变成如下:

void Check( item )

{

do

{

if( 不是连衣裙)

break;

if( 不是红色 )

break;

if( 不合身 )

break;

付钱

}while(false);

离开商店

}

这样,嵌套的if变成了并列的,代码变得简洁,不再需要老远的去寻找一个括号到底跟谁配对.do-while(false)轻松去掉了麻烦的多层嵌套,即使再多条件也不怕。

虽然以前也遇到了这类问题,却没想到这样的解决方法。妙哉,妙哉。不过此方法并不被广泛使用,用在代码里可能引起别人的误会。所以用还是不用,全凭大家自己斟酌。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值