for ( i=0,j=s.length-1;i<=j; i++,j--) 初学这个语句不明白,等同什么 i=0;j=s.length-1;while(i<=j){ i++; j--;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 初始条件: i=0,j=s.length-1判断条件:;i<=j;判断成立后的循环执行: i++,j-- Lz这段代码应该是类似这样的int i,j; int[] s = new int[15]; for ( i=0,j=s.length-1;i<=j; i++,j--) { }意思就是说,i初始化为0,j的值小于数组的长度其实这个形象点说,比如一个15cm的尺子的刻度吧,现在这个i就是从0前进,j就是从15往回退,条件是,只要i和j还有距离 那就走,直到两个元素重合。public static int halfSearch(int[] arr,int key) { int min = 0,max = arr.length-1,mid; while(min<=max) { mid = (max+min)>>1; if(key>arr[mid]) min = mid + 1; else if(key<arr[mid]) max = mid - 1; else return mid; } return -1; }有点类似这个吧,折半查找,Lz体会体会 其实条件就是 只要咱们俩还有距离,那就继续取中查找 谢谢您的解答,这个语句用到倒序排序上了。for ( i=0,j=s.length-1;i<=j; i++,j--){ char temp=s[i]; s[i]=s[j]; s[j]=temp; } System.out.print(s); 为什么这么写呢? for ( j=s.length-1;j>0; j--)System.out.print(s); 这个也可以实现倒序输出 for ( i=0,j=s.length-1;i<=j; i++,j--) 是说i初始值为0,j初始值为s的长度减1,且每次循环i的步常是加1,j是每次减1,当它们符合i<=j条件是就执行for中的代码,其实它只是比平时多了一个j而已,它就好比int j=s.length-1 ;for ( i=0,;i<=j; i++) {j--;} for ( i=0,j=s.length-1;i<=j; i++,j--)i为初值,而那个s.length-1为s数组的长度,i<=j是循环判断语句,如果i<=j那么久继续执行for语句下面的语句,不满足就跳出来不执行for语句下面的程序;然后每次循环都是使得i自动交1,而j自动减1。 谢谢您的解答,这个语句用到倒序排序上了。for ( i=0,j=s.length-1;i<=j; i++,j--){ char temp=s[i]; s[i]=s[j]; s[j]=temp; } System.out.print(s); 为什么这么写呢? for ( j=s.length-1;j>0; j--)System.out.print(s); 这个也可以实现倒序输出上面那个多此一举了吧。先把数组内的顺序给倒序了。数组发生改变了。然后再输出。按照下面的方法就是直接倒序输出。数组并没有发生改变~ 就是做了优化的for循环 不用每次计算length 多线程问题 简单问题(交互) help me ?????????? ***寻找简单的ftp服务器端和客户端的代码!!!!!! 一个简单问题,关于static的 请教一个关于API的问题,解决送500分 请指导我一下入门 请教UCS2编码的字节数组如何转换转换成原来的数据? 求汉斯法代码~要怎么查~ Bean中如何與數據庫邊結??? 请问下这两种写法,有什么区别?哪一个好一些。 java学习
判断条件:;i<=j;
判断成立后的循环执行: i++,j--
int i,j;
int[] s = new int[15];
for ( i=0,j=s.length-1;i<=j; i++,j--)
{
}意思就是说,i初始化为0,j的值小于数组的长度
其实这个形象点说,比如一个15cm的尺子的刻度吧,现在这个i就是从0前进,j就是从15往回退,条件是,只要i和j还有距离 那就走,直到两个元素重合。
public static int halfSearch(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid; while(min<=max)
{
mid = (max+min)>>1; if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}有点类似这个吧,折半查找,Lz体会体会 其实条件就是 只要咱们俩还有距离,那就继续取中查找
for ( i=0,j=s.length-1;i<=j; i++,j--){
char temp=s[i];
s[i]=s[j];
s[j]=temp;
}
System.out.print(s);
为什么这么写呢? for ( j=s.length-1;j>0; j--)
System.out.print(s); 这个也可以实现倒序输出
for ( i=0,;i<=j; i++) {
j--;
}
for ( i=0,j=s.length-1;i<=j; i++,j--){
char temp=s[i];
s[i]=s[j];
s[j]=temp;
}
System.out.print(s);
为什么这么写呢? for ( j=s.length-1;j>0; j--)
System.out.print(s); 这个也可以实现倒序输出
上面那个多此一举了吧。先把数组内的顺序给倒序了。数组发生改变了。然后再输出。按照下面的方法就是直接倒序输出。数组并没有发生改变~