题目 一项抽奖活动要求读者从整数1-49之间选择6个不同的数字,生成5组结果。
怎么会有0输出啊???谢谢了public class Test3
{
public static void main(String[] args)
{
int numbers=6; //定义生成数字的个数 //定义总共的组数
int randomNumber=0;//定义随机生成的数字
for (int i=0;i<5 ; i++){
int number1=0;
int number2=0;
int number3=0;
int number4=0;
int number5=0;
int number6=0; //生成的数字归0
int nNumbers=0;
randomNumber=0; for (int j=0;j<numbers ; j++){
randomNumber=(int)(49.0*Math.random())+1; switch (nNumbers){
case 0 :
number1=randomNumber;
nNumbers++;
break;
case 1 :
if (randomNumber!=number1 && randomNumber!=0){
number2=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 2:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=0){
number3=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 3:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=0){
number4=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 4:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=number4 && randomNumber!=0){
number5=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 5:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=number4 && randomNumber!=number5 && randomNumber!=0){
number6=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 6:
break;
} }
System.out.print("gruop"+(i+1)+"=");
System.out.println(number1+(number1>9?" ":" ")+
number2+(number2>9?" ":" ")+
number3+(number3>9?" ":" ")+
number4+(number4>9?" ":" ")+
number5+(number5>9?" ":" ")+
number6+(number6>9?" ":" ")+".");
} }
}
怎么会有0输出啊???谢谢了public class Test3
{
public static void main(String[] args)
{
int numbers=6; //定义生成数字的个数 //定义总共的组数
int randomNumber=0;//定义随机生成的数字
for (int i=0;i<5 ; i++){
int number1=0;
int number2=0;
int number3=0;
int number4=0;
int number5=0;
int number6=0; //生成的数字归0
int nNumbers=0;
randomNumber=0; for (int j=0;j<numbers ; j++){
randomNumber=(int)(49.0*Math.random())+1; switch (nNumbers){
case 0 :
number1=randomNumber;
nNumbers++;
break;
case 1 :
if (randomNumber!=number1 && randomNumber!=0){
number2=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 2:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=0){
number3=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 3:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=0){
number4=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 4:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=number4 && randomNumber!=0){
number5=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 5:
if (randomNumber!=number1 && randomNumber!=number2 && randomNumber!=number3 && randomNumber!=number4 && randomNumber!=number5 && randomNumber!=0){
number6=randomNumber;
nNumbers++;
break;
}
randomNumber=(int)(49.0*Math.random())+1;
continue;
case 6:
break;
} }
System.out.print("gruop"+(i+1)+"=");
System.out.println(number1+(number1>9?" ":" ")+
number2+(number2>9?" ":" ")+
number3+(number3>9?" ":" ")+
number4+(number4>9?" ":" ")+
number5+(number5>9?" ":" ")+
number6+(number6>9?" ":" ")+".");
} }
}
解决方案 »
- 向数据库里插入系统日期时,出这Cannot format given Object as a Date
- String x="Pi";与String x=new String("Pi");是完全一样的吧?
- 求助,求助!!!
- java可不可以实现类似于用VC编写的dll的功能
- 请问java如何实现进程间通信~~
- 什么是面向对象?什么是基于对象??
- 我想自己写一个类,然后调用他的方法,怎么办,我自己的类需要重新再写到另一个文件里么???
- 哪里有JB7下载?
- 请教各位师兄学习JAVA需要什么基础?
- 关于java 文件读取,求大神帮我实现这个小功能
- 关于server发消息给client
- 关于Object的问题
case 1 :
if (randomNumber!=number1 && randomNumber!=0){
number2=randomNumber;
nNumbers++;
break;
}
假如第2次取的值等于第一次随机出来的值那么 number2 的值就仍然为0 继续跳入下一个循环其他逻辑类似 你应该确定能取到6个不一样的随机值。i = 0;
int number[] = new int[6];
List l = new ArrayList();
while(i<6){
int j = (int)(49.0*Math.random())+1;
if(l.indexof(""+j) == -1){
number[i] = j;
i++;
l.add(""+j);
}
}
for (int j=0;j <numbers ; j++){
randomNumber=(int)(49.0*Math.random())+1;
switch (nNumbers){
case 0 :
number1=randomNumber;
nNumbers++;
break;
case 1 :
while(randomNumber==number1 || randomNumber==0){
randomNumber=(int)(49.0*Math.random())+1;
}
number2=randomNumber;
nNumbers++;
break; 注意看上面的程序,另外,你的程序写的太烂了吧?用个数组来做的话省不少笔墨呢!~算法设计地好点
会使得number1到number6有可能没有进入
if (randomNumber!=number1 && randomNumber!=0 ...){}
这个判断里面去,
而且这时nNumbers不会++使得numberX可能为初始值0