问题描述
很多程序初学者都会有这个疑问,–k和k–有什么区别呢,简单的解释是:
–k就是先让k减去1,再把k-1的结果给–k
k–是先把k的结果给k–,然后k自己减1
我来通过实际代码解读一下。
方法
首先我用python尝试了一下,
= 9
while(k!=0):
k--
print(k)
果不其然,报错了,因为python中没有‘++’和’–'这两个操作符。
于是我换成了java。
public class kth {
public static void main(String[] args){
int k =9;
while(k!=0){
// k--;
System.out.println("k的值为:"+ --k);
}
}
}
输出结果为:
k的值为:8
k的值为:7
k的值为:6
k的值为:5
k的值为:4
k的值为:3
k的值为:2
k的值为:1
k的值为:0
当代码为:
public class kth {
public static void main(String[] args){
int k =9;
while(k!=0){
// k--;
System.out.println("k的值为:"+ k--);
}
}
}
输出结果为:
k的值为:9
k的值为:8
k的值为:7
k的值为:6
k的值为:5
k的值为:4
k的值为:3
k的值为:2
k的值为:1
总结
两次输出的值不同,根源就是操作符的问题,–k是直接把k减了1,所以第一次输出就是8,而k–第一次输出是9,等到下次执行才会减1,所以–k比k–快一步。