プログラムがクラッシュしました。理由はわかりません。

WBOY
リリース: 2016-06-13 13:01:31
オリジナル
939 人が閲覧しました

プログラムがクラッシュしました。なぜ
が 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 コード?



123456789

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


Lao Xu が答えを与えてくれました。一般的に、メモリが増加して更新され続ける場合、それは基本的にコード内で無限ループになります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート