在“while”循环中,为什么可以';t我将条件中的变量声明为“for”循环中的变量
本文关键字:变量 循环 条件 for 声明 为什么 while | 更新日期: 2023-09-27 18:06:11
可能重复:
为什么可以';我们不是在while循环中定义一个变量吗?
我想简化以下代码:
string line;
while ((line = sr.ReadLine()) != null)
进入:
while ((string line = sr.ReadLine()) != null)
但失败了。
然而,我们肯定可以在for
:中做到这一点
for (int i=0, int n=50;i<n;i++)
您仍然可以使用for
:
for (string line; (line = sr.ReadLine()) != null; )
...
由于while
循环接受一个条件,因此每次运行循环时都要声明一个新的line
实例,因为每次通过循环都会评估该条件。
它在for
循环中工作,因为初始值设定项(三个分号分隔的表达式中的第一个(在开始时只运行一次;条件是第二个表达式。在for
循环的条件表达式中声明变量时也会遇到同样的问题。
在for循环中:
for(<<expr1>>,<<expr2>>,<<expr3>>)
第一个表达式只计算一次。
在一段时间内循环:
while(<<expr1>>)
每次运行时都会对表达式进行求值。
多次重新定义同一个变量是没有意义的。
我相信原因是您将多次声明变量(每次循环(。
在这里更详细地询问和回答:相同的问题