public class loop
{
public static void main(String[] args)
{
int k=0;
for (int i = 0; i < 6; i++)
{
k = k++;
System.out.println(k);
}
}
}
out put:
0
0
0
0
0
0
你能解释一下为什么上面产生的零甚至会增加k值并将其分配给k。
答案 0 :(得分:8)
此行是无操作:
k = k++;
相当于:
int tmp = k;
k = k + 1;
k = tmp;
您正在递增k
,但随后将原始值分配回k
。
我希望你确实没有这样的代码......虽然这段代码的行为在Java中有明确定义,但是(显然)令人困惑。
答案 1 :(得分:0)
可能是你想要获得像
这样的东西int k=0;
for (int i = 0; i < 6; i++)
{
k = ++k;
System.out.println(k);
}
答案 2 :(得分:0)
你甚至可以更好地使用:
for(int i = 0; i < 6; i++)
{
System.out.println(i);
}
答案 3 :(得分:0)
k++
代码将k的值递增1,然后返回预递增的值。因此,以下一行:
k = k++;
将一个加到k,然后将k的原始值(由k ++返回)赋给k。这意味着k随着它的原始值而结束。
public class loop {
public static void main(String[] args) {
int k=0;
for (int i = 0; i < 6; i++) {
k++; // increments k by 1
System.out.println(k);
}
}
}
答案 4 :(得分:0)
public class loop
{
public static void main(String[] args)
{
int k=0;
for (int i = 0; i < 6; i++)
{
k++; // k increased. No reasons to assign anything
System.out.println(k);
}
}
}
k++
增加k
,然后返回旧 k
,然后将此旧 k
分配给{ {1}}和k
再次为0
答案 5 :(得分:0)
@vedamurthy,可能是此链接 - Unary Operators会回答您的问题。
或阅读所有章节 - Java Operators,以获得更多理解。