考虑:
int[] aryNums=new int[5];
for (int i=0; i<=5; i++)
{
aryNums[i] = i++;
System.out.println(aryNums[i]);
}
为什么这不会给我数组中的值1,2,3,4,5? 相反,它给出了一个例外,如0,0和错误。
如果我改变
aryNums[i] = i++; \to
aryNums[i] = i+1;
我在数组中得到值{1,2,3,4,5}。 i ++和i + 1之间的区别是什么?
答案 0 :(得分:7)
++
是一个更改&#39; i&#39;它是i = i + 1
的简写符号。
i + 1
是一个补充语句,它返回正常情况,但它不会改变i的值,因为我没有被重新分配。
您收到错误的原因是因为i++
在递增错误之前使用i
,而如果您想在递增之后使用++i
,则需要使用{{1} (增量,然后使用)。由于i++
也会递增您的计数器,因此会跳过某些值。
答案 1 :(得分:3)
a = i++;
等于a = i; i = i + 1;
int[] aryNums=new int[5]; //array index starts from 0, so last index is "4"
for (int i=0; i<=5; i++) // 0, 1, 2, 3, 4, "5" -> out of bounds
{
aryNums[i]=i++; //i++ -> first put the i to arrNums[i], "then" increase i
System.out.println(aryNums[i]);
}
解决方案:
=
i <= 5
aryNums[i]=i++
更改为aryNums[i] = i + 1
答案 2 :(得分:2)
在第一个中,您在循环内递增i
以及循环更新的一部分。在第二种情况下,您只需在调用i++
时创建一个新整数,而不会影响i
中存储的值。
表达式i+1
更新存储在i
的值,而表达式var list = [2,3]
var limitation = 10000
var flag = true
var tmp = 0
for (var count = 4 ; count <= limitation ; count += 1 ){
while(flag && tmp <= list.count - 1){
if (count % list[tmp] == 0){
flag = false
}else if ( count % list[tmp] != 0 && tmp != list.count - 1 ){
tmp += 1
}else if ( count % list[tmp] != 0 && tmp == list.count - 1 ){
list.append(count)
}
}
flag = true
tmp = 0
}
print(list)
返回一个新值,而不会影响存储在<fieldset style="display: inline-block;">
<div style="display: inline-block;">
<input type="checkbox" name="{{ category.name }}" id="category" checked> remove rows
</div>
</fieldset>
<div class="panel panel-default col-xs-12">
<table class="table table-striped">
<thead>
<tr>
<th><strong>ID</strong></th>
<th><strong>test test test</strong></th>
<th><strong>Institute/Organisation</strong></th>
<th><strong>test deadline test</strong></th>
</tr>
</thead>
<tbody>
<tr class="category">
<th class="col-xs-1" scope="row">
test
</th>
<td class="col-xs-5">
test
</td>
<td class="col-xs-4">
test
</td>
<td class="col-xs-2">
test
</td>
</tr>
</tbody>
</table>
</div>
的值。