java如何编程福利彩票30选7,我自己编的但是不知道有什么错误,希望帮我纠正一下,标注一下我的错误
importjava.util.Arrays;importjava.util.*;publicclassFucai{privatestaticint[]a;statici...
import java.util.Arrays;
import java.util.*;
public class Fucai {
private static int[] a;
static int i;
static int j;
public static void main(String[] args){
Random r=new Random();
for(i=0;i<7;i++){
a[i]=1+r.nextInt(30);
while(true)
{
panDuan(a[i]);
if(i==j) break;
}
}
Arrays.sort(a);
for(int k=0;k<7;k++){
System.out.print(a[k]+" ");}
}
private static void panDuan(int b) {
for(int j = 0;j<i;j++)
if(a[j]==b) break;
// TODO Auto-generated method stub
}
} 展开
import java.util.*;
public class Fucai {
private static int[] a;
static int i;
static int j;
public static void main(String[] args){
Random r=new Random();
for(i=0;i<7;i++){
a[i]=1+r.nextInt(30);
while(true)
{
panDuan(a[i]);
if(i==j) break;
}
}
Arrays.sort(a);
for(int k=0;k<7;k++){
System.out.print(a[k]+" ");}
}
private static void panDuan(int b) {
for(int j = 0;j<i;j++)
if(a[j]==b) break;
// TODO Auto-generated method stub
}
} 展开
展开全部
错误1: 变量a没有初始化,变量a是一个数组,必须在初始化的时候给予一个确定的长度,或者给予确定数量的值。
2:
while (true) {
panDuan(a[i]);
if (i == j) break;
}
这段代码是个死循环,break,跳出的只是 if的判断,并不能跳出 while的循环。而且for (int j = 0; j < i; j++)这个里面的变量j已经不是原来的那个了。局部和全局的关系。实际上全局的j是没有被初始化的。
下面是我写的一个你可以看看。有什么问题,或者建议可以提出来,一起研究。
package com.gdwill.jl.Test;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Random;
/**
* Created with IntelliJ IDEA.
* User: maple
* Date: 12-11-29
* Time: 下午10:47
* To change this template use File | Settings | File Templates.
*/
public class Fucai {
private static int[] a = new int[7];
static int i = 0;
static Random r = new Random();
public static void main(String[] args) {
fucai();
Arrays.sort(a);
for (int j = 0; j < 7; j++) {
System.out.print(a[j] + " ");
}
}
private static int[] fucai() {
if (i < 7) {
int num = 1 + r.nextInt(30);
if (!containsValue(a,num)) {
a[i]=num;
i++;
fucai();
} else {
fucai();
}
}
return a;
}
public static boolean containsValue(int[] b,int num){
boolean flag=false;
for(int size=0;size<b.length;size++){
if(b[size]==num){
flag= true;
}
}
return flag;
}
}
2:
while (true) {
panDuan(a[i]);
if (i == j) break;
}
这段代码是个死循环,break,跳出的只是 if的判断,并不能跳出 while的循环。而且for (int j = 0; j < i; j++)这个里面的变量j已经不是原来的那个了。局部和全局的关系。实际上全局的j是没有被初始化的。
下面是我写的一个你可以看看。有什么问题,或者建议可以提出来,一起研究。
package com.gdwill.jl.Test;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Random;
/**
* Created with IntelliJ IDEA.
* User: maple
* Date: 12-11-29
* Time: 下午10:47
* To change this template use File | Settings | File Templates.
*/
public class Fucai {
private static int[] a = new int[7];
static int i = 0;
static Random r = new Random();
public static void main(String[] args) {
fucai();
Arrays.sort(a);
for (int j = 0; j < 7; j++) {
System.out.print(a[j] + " ");
}
}
private static int[] fucai() {
if (i < 7) {
int num = 1 + r.nextInt(30);
if (!containsValue(a,num)) {
a[i]=num;
i++;
fucai();
} else {
fucai();
}
}
return a;
}
public static boolean containsValue(int[] b,int num){
boolean flag=false;
for(int size=0;size<b.length;size++){
if(b[size]==num){
flag= true;
}
}
return flag;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询