Heim  >  Artikel  >  Backend-Entwicklung  >  程序搞死机了,不知道为啥

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

WBOY
WBOYOriginal
2016-06-13 13:01:31942Durchsuche

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

<html><br />
<head><br />
<title>8人成绩打分</title><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
</head><br />
<body><br />
<h1>请输入8个选手的成绩,用空格隔开</h1><br />
<form action="grade.php" method="post"><br />
<input type="text" name="grade" /><br />
<input type="submit" value="提交数据" /><br />
</form><br />
<?php <br />
<br />
$grade=$_POST["grade"];<br />
$arr=explode(" ",$grade);<br />
var_dump($arr);<br />
<br />
//取出输入8个数中的最大值<br />
for($i=0;$i<count($arr);$i++){<br />
	if($arr[$i] >= $arr[$i+1]){<br />
       $arr[$i+1]=$arr[$i];<br />
	}<br />
	echo "</br>最大值".$arr[$i+1];<br />
}<br />
<br />
?><br />
</body><br />
</html><span style="color: #99CC00;"></span>

------解决方案--------------------
死循环!!!
$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……


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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn