如下所示,我要反转数组。但我的代码不管用。这是我的for循环。请看一下。这个for循环正确吗。代码如下。
int[] array = new int[]{2,3,5,7,11,13,17,19};
System.out.println("Before reversal:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
for (int i = 0,j = array.length - i - 1; i < j; i++) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
System.out.println();
System.out.println("After reversal:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
for (int i = 0,j = array.length - i - 1; i < j; i++) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
j的值永远不会更新,j的初始值应该是array.length-1,因为i只是0。您有3个选项,第一个更改for语句:
for(int i=0, j=array.length-1; i<j; i++, j--) //YOUR CODE
第二种方法是将最后一个赋值更改为数组[j--]=temp;
第三种方法是在最后一个赋值后添加j--;
。
问题内容: 不允许在Go中使用以下for循环, 下面两个变量的for循环的正确等效项是什么? 问题答案: 您没有逗号运算符来连接多个语句,但是您确实有多个分配,因此这可行:
我的代码是: 这似乎不会在我的变量列表中循环。有什么想法吗?提前致谢
问题内容: 在循环内部声明变量是否不好?在我看来,这样做,如下面的第一个代码块所示,将使用第二次的十倍的内存…由于在循环的每次迭代中都创建了一个新的字符串。这样对吗? 与 问题答案: 在循环内部声明变量是否不好? 一点也不!它将变量本地化到其使用点。 在我看来,如下面的第一个代码块所示,这样做将使用十倍于第二个内存的内存。 编译器可以优化内容以保持内存使用效率。仅供参考:如果您使用关键字告诉您变量
问题内容: 我试图用多个变量在Go中编写一个for循环。 来自javascript世界,我想实现以下目标: 我已经尝试过像这样的“原始翻译”: 但这是行不通的。正确的语法是什么? 非常感谢! 问题答案: 在Go中,您可以像这样循环执行多个变量分配。
我有两个循环。在第一个循环中,我分割字段(分割)。在第二个循环中,我想打印新的字段值。只有0。我想知道循环有什么问题。我没有发现错误。:)我认为问题出在这方面: 我在Windows 7中使用Visual Studio 2013编程。 %lf输出(正确): %f输出(不正确):
问题内容: 为什么以下工作正常? 但是据说这是危险的/不正确的: 是否需要在循环外声明变量? 问题答案: 局部变量的范围应始终尽可能小。 在你的例子我相信是不会使用的外while循环,否则你就不会问这个问题,因为它声明的内部while循环不会是一个选项,因为它不会编译。 所以,既然是不使用外循环,在尽可能小的范围是内 while循环。 所以,答案是着重那绝对应该被while循环内声明。没有,没有,