为什么这个程序只打印出了一个,不能实现四个?
import java.util.Arrays;
import javax.swing.*;
public class AAA
{
public static void main(String[] args)
{ int c=10;
int[] a=new int[c];
for(int i=0;i < c; i++)
{ a[i] = i + 1;
}
for(int m=1;m<5;m++)
{
int[] b=new int[c];
for(int i=0;i < 10; i++)
{
int r=(int)(Math.random()*c);
b[i]=a[r];
a[r]=a[c-1];
c--;
}
System.out.println("第"+m+"个:");
for(int i=0;i < 10; i++)
{
System.out.print( " "+ b[i]);
}
}
}
}
最后运行时系统:
D:\>java AAA
第1个:
2 9 5 8 3 10 4 1 6 7 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at AAA.main(AAA.java:18)
?
谢谢。
----------------解决方案--------------------------------------------------------
第一次的时候已经把c减到0了
到第二次就变负了
----------------解决方案--------------------------------------------------------
那用什么方法可以让程序跳回到第二个for重新开始,而且c的值仍为10?
用continue行不行?
还是有什么别的方法?
谢谢。
----------------解决方案--------------------------------------------------------
System.out.println("第"+m+"个:");上面加一行
c=10;
----------------解决方案--------------------------------------------------------