为什么很多新型编程语言都抛弃了 C 语言风格的 for 语句?

因为C风格的for循环有太多不确定的地方,这些东西都非常的不直观:

典型的C风格的for循环像这样:

for( initialize; condition; increment )
  statement( block);

那么存在这么一大堆问题:

  1. initialize声明的变量可见性范围是?生命周期是?
  2. condition在第一次循环结束后还是开始前判断?
  3. increment在第一次循环前执行还是第一次循环后执行?
  4. 循环结束后,是先执行increment还是先判断condition?
  5. initialize是否允许同时初始化多个变量?
  6. initialize和increment都可以省略,那么condition是否可以省略?省略后是不是等价于true?

这些问题的答案当然都是明确的,但都是完全不直观的。

人生苦短,没事记这些玩意儿干啥?

而反观while循环:

while( condition )
  statement( block);

既没有initialize,也没有increment,所以这些问题都不存在:

  1. initialize声明的变量可见性范围是?生命周期是?
    没有initialize,所以不存在这个问题
  2. condition在第一次循环结束后还是开始前判断?
    condition放在statement前面,显然是在第一次循环开始前判断&#x
  • 18
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值