我尝试创建一个创建一些三角形的函数。
<pre>
<?php
$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";
if ($angka)
{
$segitiga = "";
$max = $angka + $angka - 1;
$ctr = 0;
for ($i=1; $i<=$angka; $i++){
echo $i;
for ($j=1;$j<=$max;$j++){
if ($i = $j){
if($j<=$angka){
$ctr++;
}elseif($j>$angka){
$ctr--;
}
echo " ". $ctr * $ctr;
}else{
echo " ";
}
}
echo ""."<br>";
}
}
?>
</pre>
for ($i=1; $i<=$angka; $i++)
的行已停止。它只运行一次。
下一个$i
未运行。没有下一个$i
。
实际上,我想把它作为一个功能,但这仍然无效。
答案 0 :(得分:1)
看起来这可能是罪魁祸首
if ($i = $j){
应该是
if ($i == $j){
因为您将$i
设置为$j
,如果$angka
为1,它将退出for循环,因为它是$i <=$angka
答案 1 :(得分:0)
for ($i=1; $i<=$angka; $i++){
你的$ i从1开始并停在等于$ angka的地方 由于
,$ angka可能为0$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";
这样循环可能永远不会执行,甚至一次也不会执行
如果你想测试我在说什么,我正在用$angka
手动设置你的代码并且它正常运行
这是以下代码的output
$angka = "3";
echo "<pre>";
if ($angka)
{
$segitiga = "";
$max = $angka + $angka - 1;
$ctr = 0;
for ($i=1; $i<=$angka; $i++){
echo $i;
echo 'the i loop here'.PHP_EOL;
for ($j=1;$j<=$max;$j++){
echo 'the j loop here'.PHP_EOL;
if ($i == $j){
if($j<=$angka){
$ctr++;
}elseif($j>$angka){
$ctr--;
}
echo " ". $ctr * $ctr;
}else{
echo " ";
}
}
echo ""."<br>";
}
}
答案 2 :(得分:0)
这是固定代码:
<?php
$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";
if ($angka)
{
$segitiga = "";
$max = $angka + $angka - 1;
$ctr = 0;
for ($i=1; $i<=$angka; $i++){
echo $i;
///*
for ($j=1;$j<=$max;$j++){
if ($i == $j){ //NOTICE how this needs to be `==` and not `=`
if($j<=$angka){
$ctr++;
}elseif($j>$angka){
$ctr--;
}
//$segitiga = $segitiga . ($ctr * $ctr);
echo " ". $ctr * $ctr;
}else{
//$segitiga = $segitiga . " ";
echo " ";
}
}
//*/
//$segitiga = $segitiga . "\n";
echo ""."<br>";
}
//echo $segitiga;
}
?>