#include<iostream>
int main()
{
int n,t,i;
cout<<"input a number"<<endl;
cin>>n;
for(i=1;i<=10;++i)
t=n*i;
cout<<t<<endl;
return 0;
}
如果我在控制台屏幕上输入10,那么我得到的输出只有100,
当我输入以下时,我在我的控制台上获得了整个10的表格。我不明白是什么阻止了上面的代码来显示以下输出。是return
吗?
#include<iostream>
int main()
{
int n,t,i;
cout<<"input a number"<<endl;
cin>>n;
for(i=1;i<=10;++i)
{
t=n*i;
cout<<t<<endl;
}
return 0;
}
在这里,我得到整个表直到10.为什么?
答案 0 :(得分:6)
如果正确缩进代码,可以看到第一个for循环只执行一个语句:
#include<iostream>
int main()
{
int n,t,i;
cout<<"input a number"<<endl;
cin>>n;
for(i=1;i<=10;++i)
t=n*i; // Executed within for loop
cout<<t<<endl;
return 0;
}
而
#include<iostream>
int main()
{
int n,t,i;
cout<<"input a number"<<endl;
cin>>n;
for(i=1;i<=10;++i)
{ // Every statement within the scope block is executed in the for loop
t=n*i;
cout<<t<<endl;
}
return 0;
}
任何条件或循环结构(if
,else
,for
,while
,do
)后跟单个语句只会执行该语句,如果后跟一个范围块({}
),则将执行范围块内的所有语句。
答案 1 :(得分:3)
for(i=1;i<=10;++i)
t=n*i;
cout<<t<<endl;
相当于:
for(i=1;i<=10;++i) {
t=n*i;
}
cout<<t<<endl;
因此,第一个代码段会计算t = n * i
10次,但由于t
位于循环之外,因此仅打印cout<<t<<endl;
的最后一次评估。