2017-08-09 22 views
0

我嘗試創建一個創建一些三角形的函數。我的下一個循環無法啓動

<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

其實我想把它作爲一個函數來使用,但是這仍然不起作用。

+2

'$ angka'的價值是多少? – tima

+0

清理你的代碼。刪除註釋掉的代碼,並提供諸如'$ angka'的值等詳細信息,以便我們提供幫助。 –

+0

它現在有效,罪魁禍首是'if($ i = $ j)'它應該是'if($ i == $ j)',就像Brian Putt說的那樣。 現在我可以繼續我的代碼。 – Linky

回答

1

它看起來像這可能是罪魁禍首

if ($i = $j){ 

應該

if ($i == $j){ 

因爲你設置$i$j這要是$angka爲1,將退出for循環,因爲它的$i <=$angka

+0

哇,已經downvote,它傷害 –

+0

正期待着突出代碼,就像你會看到一個ide .... wooooops –

+0

非常感謝很多人。 剛開始使用PHP,真的很多東西要學習。 – Linky

0
for ($i=1; $i<=$angka; $i++){ 

您的$我從1開始,並停止它等於$ angka 其中$ angka可能是0,因爲

$angka = isset($_POST['angka']) ? $_POST['angka'] : "0"; 

使循環可能永遠不會,如果你要測試的執行,一次也沒有 我「M說,我執行你的代碼$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>"; 
    } 
} 
+0

我已經嘗試使用大於1的輸入數字。 但現在問題已解決,感謝您的建議。 我應該提到輸入大於1。 – Linky

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; 
} 
?> 
相關問題