Home  >  Article  >  Backend Development  >  程序搞死机了,不知道为啥

程序搞死机了,不知道为啥

WBOY
WBOYOriginal
2016-06-13 13:01:31809browse

程序搞死机了,不知道为什么
想编一个程序, 输入8个成绩,然后求出其中最高分。运行下面整个,然后内存占用不停增大,浏览器卡死,
球高人解释为什么?



8人成绩打分



请输入8个选手的成绩,用空格隔开







$grade=$_POST["grade"];
$arr=explode(" ",$grade);
var_dump($arr);

//取出输入8个数中的最大值
for($i=0;$i if($arr[$i] >= $arr[$i+1]){
$arr[$i+1]=$arr[$i];
}
echo "
最大值".$arr[$i+1];
}

?>


------解决方案--------------------
死循环!!!
$grade=$_POST["grade"]; //你没有检查$_POST["grade"]的存在,$grade可能是空串
$arr=explode(" ",$grade);//当$grade为空串时,$arr 是这样的数组 array(0 => '')
for($i=0;$i     if($arr[$i] >= $arr[$i+1]){ //当$i到达最后一个元素时,$arr[$i+1] 因不存在而为空,条件永远成立
       $arr[$i+1]=$arr[$i];//于是不断的时数组增大
    }

只需
 for($i=0;$i-1;$i++)
一切引刃而解

------解决方案--------------------
引用:
引用:可以解释一下为什么我写错那个是个死循环吗?我看不出来。求数组最大值



PHP code?



123456789

$array=array(11,12,13,14);   echo $array[arrMax($array)];   function arrMax($arr) {     $m = ma……


老徐给你答案了,一般来说如果内存不断上涨,一直在刷新,那么基本就是代码存在死循环了.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn