循环语法C++
C++ for loop syntax
我是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;
或尝试不同的号码进行i
或j
这不是一个很大的数字。实际上,输出是 5 个不同的数字 (9,8,7,6,5(。您只需通过以下方法以不同的行打印它们:
cout<<i<<endl;
或
cout<<i<<"n";
或
printf("%dn",i);
还有一件事:int i(9( 只是将值 9 分配给 i。它与 int i=9 相同。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- C++语法差异:二维和一维数组(指针算术)
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么