class The_Wolf_Chased_Rabbit
{
//总洞数
private $_times = 1;
//当前洞;
private $_currHole = 0;
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取当前洞;
*/
public function displayHole()
{
for ($i=1; $i<100000; $i++) {
$this->_times = $i;
$this->_currHole = $this->_getNextHole();
//判断是否已经重复;
$isCirculation = $this->_isCirculation();
if($isCirculation){
echo '开始重复,执行次数:'.$i;
break;
echo $i.'、10<br>';
}else{
echo $i.'、'.$this->_currHole.'<br>';
}
}
return $this->_currHole;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取当前洞;
*/
private function _getCurrHole()
{
return $this->_currHole;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取下一个洞;
*/
private function _getNextHole()
{
$nextHole = $this->_times + $this->_currHole;
return $nextHole%self::HOLE_NUM;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 判断是否循环;
*/
private function _isCirculation()
{
if(1 != $this->_times && 1 == $this->_times%self::HOLE_NUM && 1 == $this->_currHole){
return true;
}
return false;
}
}
$chasedRabbit = new The_Wolf_Chased_Rabbit();
$chasedRabbit->displayHole();
{
//总洞数
const HOLE_NUM = 10;
private $_times = 1;
//当前洞;
private $_currHole = 0;
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取当前洞;
*/
public function displayHole()
{
for ($i=1; $i<100000; $i++) {
$this->_times = $i;
$this->_currHole = $this->_getNextHole();
//判断是否已经重复;
$isCirculation = $this->_isCirculation();
if($isCirculation){
echo '开始重复,执行次数:'.$i;
break;
}
echo $i.'、10<br>';
}else{
echo $i.'、'.$this->_currHole.'<br>';
}
}
return $this->_currHole;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取当前洞;
*/
private function _getCurrHole()
{
return $this->_currHole;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 获取下一个洞;
*/
private function _getNextHole()
{
$nextHole = $this->_times + $this->_currHole;
return $nextHole%self::HOLE_NUM;
}
/**
* @author:linquan 2017-11-29;
* @return multitype:int;
* @desc 判断是否循环;
*/
private function _isCirculation()
{
if(1 != $this->_times && 1 == $this->_times%self::HOLE_NUM && 1 == $this->_currHole){
return true;
}
return false;
}
}
$chasedRabbit = new The_Wolf_Chased_Rabbit();
$chasedRabbit->displayHole();