循环语法C++

C++ for loop syntax

本文关键字:C++ 语法 循环      更新时间:2023-10-16

我是C的新手,不了解这种类型的for循环语法。

for(int i(9), j(0); i > j; i--, j++)
cout << i;

这给出了 98765 的结果,但为什么呢?

我习惯了这样的循环:

for(int i = 9, int j = 0; i>j; i--, j++){
 System.out.println(i);
}

看到我被初始化为 9,j 被初始化为 0,但它如何得到一个这么大的数字?

它按预期打印 9,8,7,6,5,没有任何逗号。这不是一个大数字。

System.out.println() - 在末尾打印新行。

cout - 行为方式与System.out.print()类似,在末尾不打印换行符。

因为您没有打印换行符:

for(int i(9), j(0); i > j; i--, j++)
    cout << i << 'n';

我只想在这里已经发布的(好(答案中添加一些东西:

int i(9);

做同样的事情

int i = 9;

它称为直接初始化。看一看:int 类型的构造函数

我认为这就是首先让你感到困惑的原因。

进在C++中无关紧要,因为空格被忽略了......

因此

for(int i(9), j(0); i > j; i--, j++)
cout << i;

与以下相同:

for(int i(9), j(0); i > j; i--, j++)
    cout << i;

这是:

for(int i(9), j(0); i > j; i--, j++) {
    cout << i;
}

所以它不是 1 个数字,而是很多。

这在Java和大多数C族语言中是相同的。

与来自System.out(PrintStream(的println不同... <<只写你传递给cout的内容,通常是STDOUT。要正确编写换行符以cout您应该使用:

cout << i << endl;

请参阅当我可以使用换行符时为什么使用 endl?了解更多信息。

它不是打印一个大数字,它只是在每个迭代/循环中一个接一个地打印i。要查看使用这个

cout << i << endl;

或尝试不同的号码进行ij

这不是一个很大的数字。实际上,输出是 5 个不同的数字 (9,8,7,6,5(。您只需通过以下方法以不同的行打印它们:

cout<<i<<endl;

cout<<i<<"n";

printf("%dn",i);

还有一件事:int i(9( 只是将值 9 分配给 i。它与 int i=9 相同。