如果我在循环内声明 'val' 变量,那么代码不会显示所需的输出,但是当我将它放在循环外时它工作正常。原因?
If I declare the 'val' variable inside the loop then the code is not showing the desired output but when i put it outside loop it works fine. Reason?
在下面的代码中,如果我在循环内声明变量 val
,那么代码不会显示所需的输出,但是当我将它放在循环外时它工作正常。
可能是什么原因?
#include <iostream>
using namespace std;
int main(){
int n ;
cin>>n ;
int row=1;
char val = 'A';
while(row<= n){
int col=1;
while(col<=n){
cout<< val ;
val = val+1;
col=col+1;
}
cout<<endl;
row=row+1 ;
}
}
在 while 循环的每次迭代中都会重新创建您的变量。
变量的 scope
在循环内是 local
,因此每当另一个迭代开始时,它都会创建一个新副本。
在您的例子中,如果您将变量 val
放入循环中,它将每次都以 A
作为其值重新创建。但是在 global
范围内它只被初始化一次从而实现你的目的。
你可以参考这个Scope of variables来更好地理解。
在下面的代码中,如果我在循环内声明变量 val
,那么代码不会显示所需的输出,但是当我将它放在循环外时它工作正常。
可能是什么原因?
#include <iostream>
using namespace std;
int main(){
int n ;
cin>>n ;
int row=1;
char val = 'A';
while(row<= n){
int col=1;
while(col<=n){
cout<< val ;
val = val+1;
col=col+1;
}
cout<<endl;
row=row+1 ;
}
}
在 while 循环的每次迭代中都会重新创建您的变量。
变量的 scope
在循环内是 local
,因此每当另一个迭代开始时,它都会创建一个新副本。
在您的例子中,如果您将变量 val
放入循环中,它将每次都以 A
作为其值重新创建。但是在 global
范围内它只被初始化一次从而实现你的目的。
你可以参考这个Scope of variables来更好地理解。