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

C语言风格的for循环因不直观和存在多种不确定性而被许多新型编程语言弃用。这些问题包括变量的可见性和生命周期、条件判断时机、递增操作的执行时刻等。相比之下,while循环更简洁明了,没有这些问题。尽管for循环在特定遍历场景下有其作用,如限制变量的可见范围和生命周期,但在其他方面受限,如无法初始化不同类型的变量。随着新语言引入更直观的遍历语法,for循环的重要性降低。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值