是否可以在C++的for循环的初始化主体中声明两个不同类型的变量?
例如:
for(int i=0,j=0 ...
Run Code Online (Sandbox Code Playgroud)
定义了两个整数.我可以在初始化主体中定义a int和a char吗?怎么做?
我知道我可以像这样使用逗号运算符
for (int i = 1, j = 15; j>10; i++, j--) {
// do something neat
}
Run Code Online (Sandbox Code Playgroud)
但是有些文章似乎暗示逗号运算符可以在for循环声明之外使用,例如
int j = 2, k = 4 ;
int x ;
// Assignment statement with comma operator
x = j + 1, k ;
Run Code Online (Sandbox Code Playgroud)
来源:http://www.cs.umd.edu/~clin/MoreJava/ControlFlow/comma.html
要么
int x = (expression) ? (i++,2) : 3;
Run Code Online (Sandbox Code Playgroud)
来源:https://stackoverflow.com/a/12047433/1084813
对于代码混淆竞赛来说这将是一个巧妙的技巧或混淆我的同事,但两个示例都不会编译(Java 1.6,Eclipse Juno),错误是"赋值的左侧必须是变量".我试着查看编译器设置,看看是否可以禁止防止错误的代码,但没有运气.
怎么了?逗号运算符是旧规范的一部分,后来又改变了吗?使用不同Java设置编写这些示例的人是否允许这样做?
java for-loop variable-assignment comma-operator assignment-operator
为什么我们没有在for循环中进行多次初始化?我们有多个增量语句.
码:
for(int i=1,int c=4;i<1;i++)
System.out.println(c);
Run Code Online (Sandbox Code Playgroud)
此代码显示编译时错误.
我总是想知道,为什么不编译?
for(int i=0, int q=0; i<a.length; i++){
...
}
Run Code Online (Sandbox Code Playgroud)
为什么Java不允许我在for循环'header'中声明多个变量?这背后有合理的原因吗?