Java整数门组合

时间:2014-10-27 15:26:09

标签: java

我需要一些帮助或一般性建议,说明为什么我的代码没有按预期运行。

背景信息:在组合类中创建由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);

}
}

如果这个帖子格式有任何问题,我道歉,再次指出任何问题:)

2 个答案:

答案 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.