首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教一下程序有时候 a1运行不出来 ,还有如何修改避免重复? if语句有有关问题吗

2013-07-04 
请问一下程序有时候 a1运行不出来 ,还有怎么修改避免重复? if语句有问题吗?import java.util.*public cla

请问一下程序有时候 a1运行不出来 ,还有怎么修改避免重复? if语句有问题吗?
import java.util.*;

public class randomnumber{
  public static void main(String[] args) {
        Random  r=new Random();
        int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0;
        a1=r.nextInt(32)+1;
    a2=r.nextInt(32)+1;
    a3=r.nextInt(32)+1;
    a4=r.nextInt(32)+1;
    a5=r.nextInt(32)+1;
    a6=r.nextInt(32)+1;
   if((a1!= a2)&&(a1!= a3)&&(a1!= a4)&&(a1!= a5)&&(a1!= a6)&&(a2!= a3)&&(a2!= a4)&&(a2!= a5)&&      (a2!= a6)&&(a3!= a4)&&(a3!= a5)&&(a3!=a6)&&(a4!= a5)&&(a4!= a6)&&(a5!= a6)) 
  System.out.println("红球 1-33");
         System.out.println("a1="+a1);
         System.out.println("a2="+a2);
         System.out.println("a3="+a3);
         System.out.println("a4="+a4);
    System.out.println("a5="+a5);
    System.out.println("a6="+a6);
 System.out.println("蓝球 1-16");
 System.out.println(( r.nextInt(16)+1));
}
}
把if改成 while 后面加上{}   shishi!
[解决办法]
有问题自己想办法解决啊,在 while{....  最后加上个 break; }  运行一次就听了!
请教一下程序有时候 a1运行不出来 ,还有如何修改避免重复? if语句有有关问题吗
[解决办法]
或者 定义一个 sum  运行一次就加1  想运行几次都行  在里面加上 if(sum = xx) break;
break 不行就用 return  ,break和return不懂的话 自己上网上查
[解决办法]
肯定是条件的问题  不全 或者其他的 好好再研究研究吧
[解决办法]
你生成不重复的随机数不就行了?
[解决办法]



import java.util.Random;

public class Random_caipiao {
public static void main(String[] args) {
Random ran = new Random();

int a = ran.nextInt(33) + 1;
int b = ran.nextInt(33) + 1;
while (b == a)
b = ran.nextInt(33) + 1;
int c = ran.nextInt(33) + 1;
while (c == a 
[解决办法]
 c == b)
c = ran.nextInt(33) + 1;


int d = ran.nextInt(33) + 1;
while (d == a 
[解决办法]
 d == b 
[解决办法]
 d == c)
d = ran.nextInt(33) + 1;
int e = ran.nextInt(33) + 1;
while (e == a 
[解决办法]
 e == b 
[解决办法]
 e == c 
[解决办法]
 e == d)
e = ran.nextInt(33) + 1;
int f = ran.nextInt(33) + 1;
while (f == a 
[解决办法]
 f == b 
[解决办法]
 f == c 
[解决办法]
 f == d 
[解决办法]
 f == e)
f = ran.nextInt(33) + 1;
System.out.print("机选的红色球为:\t" + a + "\t" + b + "\t" + c + "\t" + d
+ "\t" + e + "\t" + f);
int g = ran.nextInt(16) + 1;
System.out.print("\t蓝球为:\t" + g);
}
}
如果想要 顺序输出红色球 ,可以写个冒泡之类的方法 排序一下
[解决办法]


// 把楼主的代码 稍微修改了一下

import java.util.*;

public class randomnumber {
public static void main(String[] args) {
Random r = new Random();
int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0;
while (true) {
a1 = r.nextInt(32) + 1;
a2 = r.nextInt(32) + 1;
a3 = r.nextInt(32) + 1;
a4 = r.nextInt(32) + 1;
a5 = r.nextInt(32) + 1;
a6 = r.nextInt(32) + 1;
if ((a1 != a2) && (a1 != a3) && (a1 != a4) && (a1 != a5)
&& (a1 != a6) && (a2 != a3) && (a2 != a4) && (a2 != a5)
&& (a2 != a6) && (a3 != a4) && (a3 != a5) && (a3 != a6)
&& (a4 != a5) && (a4 != a6) && (a5 != a6)) {
System.out.println("红球 1-33");
System.out.println("a1=" + a1);
System.out.println("a2=" + a2);
System.out.println("a3=" + a3);
System.out.println("a4=" + a4);
System.out.println("a5=" + a5);
System.out.println("a6=" + a6);
break;
}

}
System.out.println("蓝球 1-16");
System.out.println((r.nextInt(16) + 1));
}


}
[解决办法]
改动了楼主的代码顺序:
while(true) {
    
    a1=r.nextInt(32)+1;
      a2=r.nextInt(32)+1;
      a3=r.nextInt(32)+1;
      a4=r.nextInt(32)+1;
      a5=r.nextInt(32)+1;
      a6=r.nextInt(32)+1;
    

    if((a1!= a2)&&(a1!= a3)&&(a1!= a4)&&(a1!= a5)&&(a1!= a6)&&
    (a2!= a3)&&(a2!= a4)&&(a2!= a5)&&(a2!= a6)&&
    (a3!= a4)&&(a3!= a5)&&(a3!=a6)&&
    (a4!= a5)&&(a4!= a6)&&
    (a5!= a6)){
    System.out.println("红球 1-33");
          System.out.println("a1="+a1);
          System.out.println("a2="+a2);
          System.out.println("a3="+a3);
          System.out.println("a4="+a4);
      System.out.println("a5="+a5);
      System.out.println("a6="+a6);
      break;
      }else{
      continue;
      }
   }

小白一枚,目测实现了楼主的要求

热点排行