Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么for()循环语句后面的大括号使我的代码表现不同?_C++ - Fatal编程技术网

C++ 为什么for()循环语句后面的大括号使我的代码表现不同?

C++ 为什么for()循环语句后面的大括号使我的代码表现不同?,c++,C++,在这张桌子上,我一直坐到10点。这是为什么?如果代码缩进正确,您可以看到第一个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; cout<<t<<endl; } return 0; } 当 #include<iostr

在这张桌子上,我一直坐到10点。这是为什么?

如果代码缩进正确,您可以看到第一个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;
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)
        t=n*i; // Executed within for loop
    cout<<t<<endl;
    return 0;
}
任何条件或循环构造if、else、for、while后跟单个语句将仅执行该语句,如果后跟作用域块{},则将执行作用域块内的所有语句

#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;
}
相当于:

for(i=1;i<=10;++i)
t=n*i;
cout<<t<<endl;

因此,第一个代码段计算t=n*i 10次,但由于cout@πάντα,只打印t的最后一次计算ῥεῖ 公平的enough@OP-请正确缩进你的代码,这样你就不会有这样的问题了,因为一些奇怪的原因,我看到很多新程序员写的代码都是左对齐的。既然这么多人都在这样做,我想知道他们是从哪里学来这种做法的。最好总是在if/while/for语句中使用大括号,同时缩进代码。使事情变得非常清楚,你问的问题是关于C++语言的基础知识。它表明你需要读一本关于C++的好书来发展对基本概念的理解。这不是通过在互联网上提出狭隘的问题就可以正确学习的东西。什么是BTW?Ant -OP很可能使用过时、古老的Turbo C++编译器。RE:范围块中的所有语句都会被执行,这是因为块是单个语句。也就是说,如果为true,则执行它后面的语句。
for(i=1;i<=10;++i)
t=n*i;
cout<<t<<endl;
for(i=1;i<=10;++i) {
    t=n*i;
}
cout<<t<<endl;