虽然循环没有运行,直到会议完成条件
我创建了一个while循环,似乎无法正常运行。它会调用另一个类的方法来帮助更改我的程序的停止条件。它平均调用方法大约3-8次,永远不会达到停止条件,但会停止。虽然循环没有运行,直到会议完成条件
public class useExample
{
public static void main(String[] args)
{
Example ex = new Example();
long [] result;
long a = 0;
long b = 0;
long c = 0;
long d = 0;
long e = 0;
int count = 0;
int a1 = 1;
int b1 = 2;
int c1 = 3;
int d1 = 4;
int e1 = 5;
for(int i = 0; i <1; i++)
{
while(a != a1 && b != b1 && c != c1 && d != d1 && e != e1)
{
result = ex.getOnes();
a = result[0];
b = result[1];
c = result[2];
d = result[3];
e = result[4];
System.out.println(result[0] + " " + result[1] + " " + result[2] + " " + result[3] + " " + result[4]);
System.out.println(a + " " + b + " " + c + " " + d + " " + e + " " + count++);
}
System.out.println(a + " " + b + " " + c + " " + d + " " + e + " "+ count);
}
}
}
的实施例类是如下:
import java.util.*;
public class Example
{
Random r = new Random();
public long[] getOnes(){
int a = r.nextInt(35);
int b = r.nextInt(35);
int c = r.nextInt(35);
int d = r.nextInt(35);
int e = r.nextInt(35);
while(a == 0)
{
a = r.nextInt(35);
//temp[0] = a;
}
while(b == 0 || b == a /*|| b == c || b == d || b == e*/)
{
b = r.nextInt(35);
//temp[1] = b;
}
while(c == 0 || c == a || c == b /*|| c == d || c == e*/)
{
c = r.nextInt(35);
//temp[2] = c;
}
while(d == 0 || d == a || d == b || d == c/*|| d == e*/)
{
d = r.nextInt(35);
//temp[3] = d;
}
while(e == 0 || e == a || e == b || e == c|| e == d)
{
e = r.nextInt(35);
//temp[4] = e;
}
return new long[] {a, b, c, d, e};
}
}
的useExample类的while循环当同时的每个condtion是false.This应该只停止装置时:
a == a1
b == b1
c == c1
d == d1
e == e1
它应该输出它经过的循环数以及每个循环的值。最终输出相同的a1值到e1。
“useExample类的while循环只应在while的每个条件为false时停止。”
使用 “& &” 而在(一个!= A1 & & b!= B1 & &!C = C1 & & d!= D1 & &电子!= E1){...} 意味着,如果只有一个条件是错误的,例如(a!= a1)== false,整个条件将是错误的。
如果要循环运行,直到所有条件都为false,则应使用“||”而不是“& &”。 *
我原本有一个e设置为0,a1设置为1,b1设置为2,c1设置为3,d1设置为4,e1设置为5.而a!= 1和b!= 2和c! = 3,并且d!= 4和e!= 5调用getOne方法,该方法返回值和数组数组,将a设为a,将值b设为值,将c设为值,将d设为值,将e设置为阵列。因此,直到getOne调用和数组{1,2,3,4,5}将a设置为1 b到2 c到3 d到4以及e到5,仅当发生这种情况时,循环条件将为假,因为1!= 1假2!= 2假3!= 3假4!= 4假和5!= 5假,因此全部条件为假 – Jake2pointO
*永远不会达到停止条件,但它会停止*完全不清楚期望什么? – Ravi
这段代码没有编译,你有两个名字为e的变量在同一个范围内。请发送有效的代码 – CraigR8806
在每次调用getOnes()时,34 * 33 * 32 * 31 * 30有一次机会获得正确的结果。你有足够的时间吗? –