我需要一些帮助或一般性建议,说明为什么我的代码没有按预期运行。
背景信息:在组合类中创建由3位,2位数字(10-99之间)组成的组合。 ConnectionManager类(通过下面给出的链接找到)按升序接收组合(通过组合中的访问器分配它们,例如Ex.34 67 87)。嵌套whiles上的循环必须经过所有可能的组合;输入组合成功时停止,或达到限制(97 98 99)。只是为了澄清,3个整数不能相互相等(例如34 34 97),默认值分别为10 11 12。如果找到该组合,则该方法本身必须返回一个布尔值,以便继续下一个方法。
当满足这两个条件中的任何一个时,循环本身必须结束,否则整个程序将失败。我正在努力寻找一种正常工作的方式,我们非常感谢任何形式的帮助/建议。
public class ConnectionManager
{
private Combination combo;
private Connector connect;
}
public class ConnectionManager()
{
combo = new Combination();
connect = new Connector();
public void unLockDoor(AbstractCombination combo)
{
int count = 0;
int combo3;
int combo2;
int combo1;
for(counter = 0; counter <= 99; counter++)
{
while(combo3 <= 99)
{
while(combo2 < combo3)
{
while(combo1 < combo2)
{
setCombo(); //From the combination class to set combination
if(Connector.unLockDoor(combo) == true) //From Connector Class
{
unlock = true;
}
else
{
combo1++;
if(combo1 == combo2)
{
combo1 = 10;
combo2++;
if(combo2 == combo3)
{
combo2 = 11;
combo3 = 12;
combo3++;
}
}
counter += 1;
System.out.println(combo1 + " " + combo2 + " " + combo3 + " " + counter)
}
}
}
}
System.exit(0);
}
}
如果这个帖子格式有任何问题,我道歉,再次指出任何问题:)
答案 0 :(得分:0)
我假设您的代码由于语法错误而无法编译,因为您在构造函数声明中有'class'。变化:
public class ConnectionManager
{
private Combination combo;
private Connector connect;
}
public class ConnectionManager()
{
combo = new Combination();
connect = new Connector();
到
public class ConnectionManager
{
private Combination combo;
private Connector connect;
public ConnectionManager()
{
combo = new Combination();
connect = new Connector();
答案 1 :(得分:0)
问题在于
if(combo2 == combo3)
{
combo2 = 11;
combo3 = 12;
combo3++;
}
每当combo2达到combo3的值时,会将combo3重置为13.