黑马程序员技术交流社区
标题:
一个比较经典的错误
[打印本页]
作者:
a80C51
时间:
2015-8-28 22:22
标题:
一个比较经典的错误
public class mySortArrays
{
public static void swapNums(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
public static void sortArrays(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
swapNums(arr[x],arr[y]);
}
}
}
}
public static void printArrays(int[] arr)
{
for(int arrIndex:arr)
{
System.out.print(""+arrIndex+",\t");
}
System.out.println("");
}
public static void main(String[] args)
{
int[] a = {4,5,7,2,8,6};
printArrays(a);
sortArrays(a);
printArrays(a);
}
}
复制代码
看看能发现什么问题不?
作者:
a80C51
时间:
2015-8-28 22:56
class DataSwap
{
int a;
int b;
}
public class mySortArrays
{
public static void swapNums(DataSwap dw)
{
int temp;
temp = dw.a;
dw.a = dw.b;
dw.b = temp;
}
public static void sortArrays(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
DataSwap dw = new DataSwap();
dw.a=arr[x];
dw.b=arr[y];
swapNums(dw);
arr[x] = dw.a;
arr[y] = dw.b;
}
}
}
}
public static void printArrays(int[] arr)
{
for(int arrIndex:arr)
{
System.out.print(""+arrIndex+",\t");
}
System.out.println("");
}
public static void main(String[] args)
{
int[] a = {4,5,7,2,8,6};
printArrays(a);
sortArrays(a);
printArrays(a);
}
}
复制代码
修改之后的代码,至于其中的原因,等我学习完一些知识后,再做解答。
另外对于交换数据的函数,各位有没有什么比较简单的写法。
作者:
绅士痞子
时间:
2015-8-28 23:30
Good 我居然一下找不出来,再看看
作者:
何时指点江山
时间:
2015-8-29 00:01
经典的问题哦
作者:
JXHIUUI
时间:
2015-8-29 00:05
看不出什么问题,求告知!
作者:
别弄那些没的
时间:
2015-8-29 00:08
问题在哪
作者:
a80C51
时间:
2015-8-29 00:12
各位运行一下,就知道了。不要被表面所迷惑。我这边由于还是不清楚引用的概念,所以,会讲不清楚。先按下不发。待我整理好后,或有高手发现时,自然会还一个真相!
作者:
sunsteam
时间:
2015-8-29 00:25
只是不能写this.所以用了这个方法麽? 改个变量名不就好了么? 或者函数都不写成静态不就好了么 这样好麻烦啊
下面这句没看到什么意思 求解释
for(int arrIndex:arr)
{
System.out.print(""+arrIndex+",\t");
}
作者:
a80C51
时间:
2015-9-1 22:41
http://bbs.itheima.com/thread-233196-1-1.html
各位可以看看我这边写的一个帖子,今天刚刚整理出来的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2