Java模运算符和预增量-SCJA
我正在为我的SCJA考试复习,我被这个问题和答案弄糊涂了。问题是运行和编译代码的结果是什么Java模运算符和预增量-SCJA,java,Java,我正在为我的SCJA考试复习,我被这个问题和答案弄糊涂了。问题是运行和编译代码的结果是什么 public class Test{ public static void main(String args[]){ int counter = 0; for(int i=0; i< 4; ++i){ for(int k=0; k< 4; ++k){ system.out.prin
public class Test{
public static void main(String args[]){
int counter = 0;
for(int i=0; i< 4; ++i){
for(int k=0; k< 4; ++k){
system.out.println("Hello - "+ ++counter);
if((k % 4) == 0)
break;
}
}
}
}
公共类测试{
公共静态void main(字符串参数[]){
int计数器=0;
对于(int i=0;i<4;++i){
对于(int k=0;k<4;++k){
system.out.println(“Hello-”+++计数器);
如果((k%4)==0)
打破
}
}
}
}
所以他们给出的答案是“Hello-1”,因为0%4=0
但我的问题是k不应该是1,因为它已经被预先递增了吗
提前谢谢
我的问题是k
是否应该不是1,因为它已经被预先递增了
++k
发生在循环迭代结束时,即if
语句之后
无论是++k
还是k++
,都没有区别;无论哪种情况,k
的第一个值都为零
所以他们给出的答案是“Hello-1”
这显然是不正确的,因为在整个程序中,计数器
从不递增且始终保持为零
我的问题是k
是否应该不是1,因为它已经被预先递增了
++k
发生在循环迭代结束时,即if
语句之后
无论是++k
还是k++
,都没有区别;无论哪种情况,k
的第一个值都为零
所以他们给出的答案是“Hello-1”
这显然是不正确的,因为在整个程序中,
计数器
从不递增且始终保持为零。for循环具有以下结构:
for (initialization; condition; update)
每次执行循环后,更新将执行
因此,以下两个回路是相同的:
for (int i = 0; i < 10; i++) {
for(int i=0;i<10;i++){
及
for(int i=0;i<10;++i){
for循环具有以下结构:
for (initialization; condition; update)
每次执行循环后,更新将执行
因此,以下两个回路是相同的:
for (int i = 0; i < 10; i++) {
for(int i=0;i<10;i++){
及
for(int i=0;i<10;++i){
k不能为1。
这是因为当for循环运行时,它只有在执行了循环中的所有代码后才会更新。因为循环在第一次迭代完成之前就中断了,所以k仍然为0。k不能为1。
这是因为当for循环运行时,它只有在执行完循环中的所有代码后才会更新。因为循环在第一次迭代完成之前就中断了,所以k仍然为0。在第一次迭代时,k取0值(在每次迭代结束时执行++k),在第一次迭代时,k取0值(++k在每次迭代结束时执行)啊,一切都有意义!非常感谢!啊,一切都有意义!非常感谢!