package basic.day05;import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class DoubleBall { /**
* 雙色球
*/
public static void main(String[] args) {
String[] redBall = {"01","02","03","04","05","06","07","08","09",
"11","12","13","14","15","16","17","18","19",
"21","22","23","24","25","26","27","28","29",
"30","31","32","33"};
String[] buleBall = {"01","02","03","04","05","06","07","08","09",
"11","12","13","14","15","16"};
boolean[] labelBall = new boolean[33];
Random ra = new Random();
Scanner console = new Scanner(System.in);
System.out.print("输入所买双色球的注数:");
int n = console.nextInt();
for(int i = 0; i < n; i++){
int s = ra.nextInt(16);
String[] ball = choose(redBall,labelBall);
System.out.print("电脑随机出红蓝球为:");
Arrays.sort(ball);
System.out.print(Arrays.toString(ball));
System.out.println("\t["+buleBall[s]+"]");
}
}
public static String[] choose(String[] redBall, boolean[] labelBall ){
String[] newBall = {};
Random ra = new Random();
int s;
for(int i = 0; i < 6; i++){
do{
s = ra.nextInt(33);
}while(labelBall[s] == true);
labelBall[s] = true;
newBall = Arrays.copyOf(newBall, newBall.length + 1);
newBall[newBall.length-1] = redBall[s];
}
return newBall;
}
}我看了好久 还是不知道那错了。 为什么有时候运行的时候可以 有的时候运行就报错了。 请高手指点。 请说清楚。不要说“越界”两个字就行了。 谢谢。。
import java.util.Random;
import java.util.Scanner;public class DoubleBall { /**
* 雙色球
*/
public static void main(String[] args) {
String[] redBall = {"01","02","03","04","05","06","07","08","09",
"11","12","13","14","15","16","17","18","19",
"21","22","23","24","25","26","27","28","29",
"30","31","32","33"};
String[] buleBall = {"01","02","03","04","05","06","07","08","09",
"11","12","13","14","15","16"};
boolean[] labelBall = new boolean[33];
Random ra = new Random();
Scanner console = new Scanner(System.in);
System.out.print("输入所买双色球的注数:");
int n = console.nextInt();
for(int i = 0; i < n; i++){
int s = ra.nextInt(16);
String[] ball = choose(redBall,labelBall);
System.out.print("电脑随机出红蓝球为:");
Arrays.sort(ball);
System.out.print(Arrays.toString(ball));
System.out.println("\t["+buleBall[s]+"]");
}
}
public static String[] choose(String[] redBall, boolean[] labelBall ){
String[] newBall = {};
Random ra = new Random();
int s;
for(int i = 0; i < 6; i++){
do{
s = ra.nextInt(33);
}while(labelBall[s] == true);
labelBall[s] = true;
newBall = Arrays.copyOf(newBall, newBall.length + 1);
newBall[newBall.length-1] = redBall[s];
}
return newBall;
}
}我看了好久 还是不知道那错了。 为什么有时候运行的时候可以 有的时候运行就报错了。 请高手指点。 请说清楚。不要说“越界”两个字就行了。 谢谢。。
解决方案 »
- 请人解释一下二进制表示A的时候是01000000而如果用byte表示一个整数65时也是01000000,那计算机是怎么区分的啊
- 本人有一个问题,想请教下大家
- 帮忙看一句代码,这是向上转型么?怎么样才能向上转型?
- 急~请教如何在JAI中释放文件资源
- J2EE的系统,运行特别慢,请问是什么问题?
- ============== 高分急求:汉字编码问题(JSP网页) =============
- 请教ireport中关于subreport,谁能给一个能运行的例子。我怎么搞都搞不出来。急啊。在线等,分不够可以再给
- 求助 谢谢
- 可不可以向List里添加图标,可以的话怎么添加?
- 請問哪裡有<<面向对象程序设计导论>>这本书下載?
- 问个因2008操作系统-序列化时-日期延后8小时的问题?
- 关于实现一个小型项目的步骤
String[] redBall = {"01","02","03","04","05","06","07","08","09",
"11","12","13","14","15","16","17","18","19",
"21","22","23","24","25","26","27","28","29",
"30","31","32","33"};
这个数组里面少了10,和20两个数字,或者说是这个数组的长度根本不是33,所以在s=32\31时,redBall[s]就越界了
我竟然没看见。。
谢谢你们
呵呵。。我还在注意for循环呢。。
没看到定义的数。。