package com.yang.family;
/* ++i 和 i++ 和 --i 和i--和-i--和-i++之间的变化演练
* author yang xiping
* verion 1.6
*/
public class A_i_Every {
public static void main(String[] args) {
int i=8,j=4;
int sum=0;
System.out.println("输出的结果是:"+ ++i);//输出9
System.out.println("输出的结果是:"+ --i);//输出8
System.out.println("输出的结果是:"+ i++);//输出8,因为上一次输出是8,在这次输出中先是输出原值8,再执行后加加。
System.out.println("输出的结果是:"+ i--);//输出9,这个一个道理,后减减,实现将原纸打印出来,在进行自减。
System.out.println("输出的结果是:"+ -i--);//输出-8
System.out.println("输出的结果是:"+ -i++);//输出-7
System.out.println("输出的结果是:"+ i++ );//输出8
sum=(j+i++);//输出13 是因为j原值是4,i上一层输出时8,后来自加,变9,结果sum=13.
System.out.println(sum);
}
}
如果是在循环中,这个是没有影响的。比如这个冒泡排序吧,无论怎么样,先加加,后加加都会根据条件判断后才执行程序的相应的代码段。就是在++i 和i++ 就在效率上应该是前者吧,他毕竟是符合for循环的流程规定。而且是没有思路上阻塞。如下是个for先后加的例子。
package com.name.yang;
/*
* 冒泡法排列
*/
public class First_bubbles {
public static void main(String[] args) {
int arr[] = { 0, 1, 6, -1, 9, 45, 90, -76, 2, 12, 7, 89, -34 };
bubble bble = new bubble();
bble.sort(arr);
System.out.println("use the bubble number compare and get the answer");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
/*
* 定义一个类,将其方法封装
*/
class bubble {
public void sort(int arr[]) {
int temp = 0;
for (int i = 0; i < arr.length - 1; ++i) {
for (int j = 0; j < arr.length - 1 - i; ++j) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
} |