帮忙解释两个for循环
各位大大,这是一个用*输出倒直角三角形的例子,这两个for循环我不是很白,特别是里面的那个,能解释下么,谢谢啦~
for($i=1;$i<15;$i++){ for($j=$i;$j<15;$j++){ echo "*"; } echo "<br>"; }
回复讨论(解决方案)
为什么还要有个变量$j去等于外层的变量$i,再次循环一遍呢?
你首先理解下单个发for循环含义!如果里面不再做一次循环就不会出现3角了,而是竖着的14个*
$j = $i;//是让内层循环的起始值等于外层的值//每次都少输出一个*//外层第一次循环,内层输出14个*//外层第二次循环,内层输出13个*//以此类推只到循环结束
$j = $i;
关于这两个变量,我这样说看你能不能理解。
$i代表的是行数,即第一次循环代表第一行,依次类推,一共十五行。
$j代表的是列数,即每一行有多少列。
把代码稍改动下,输出一个矩形,帮助你理解。改动的地儿:$j=1。
<?php for($i=1;$i<15;$i++){ for($j=1;$j<15;$j++){ echo "*"; } echo "<br>"; }?>
理解for循环
其实可以输出四种直角三角形
$i 可以看做是行, $j可以看做是列
首先看 $i =1;的时候$j =1; j<15,也就是里面的for会循环14次,第一行就会出现14个*,然后里面的for结束开始 $i=2;的循环
然后看 $i =2;的时候$j=2;j<15,里面的for会循环13次,出现13个*,后,开始执行$i=3;
…………
一次循环,最后得到第一行14个*,共14行,最后一行一个*,不知是否清楚.
多练练九九乘法表的输出和菱形的输出
这个我都能理解唉,i=1的时候 第二个for循环1<15 是不是循环14个星 i=2的时候 循环13 以此类推
$i控制执行的行数。
$j控制每一行输出的*数。
很好理解啊。
因为从第一行开始,你的星号个数就要递减,知道了规律,你再结合代码就容易理解了。其实代码还可以这样写。
for($i=1;$i<15;$i++){ for($j=0;$j<15-$i;$j++){ echo "*"; } echo "<br>"; }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

我們常在購買電視,電腦或手機時看到多少K螢幕這種介紹,例如2.8K螢幕。每當這個時候就會有對電子設備不太了解的小夥伴好奇這個2.8K螢幕到底是什麼意思,解析度又是什麼。 2.8k螢幕什麼意思答:2.8k螢幕的意思是螢幕的解析度為2880*18002K就是橫向像素點數量大於2000,相同大小的螢幕,解析度越高畫面品質越好。解析度介紹1、由於螢幕上的點、線和麵都是由像素組成的,顯示器可顯示的像素越多,畫面就越精細,同樣的螢幕區域內能顯示的資訊也越多。 2.解析度越高,像素的數目越多,感應到的影像越

註:本文以Go語言的角度來比較研究循環和遞歸。在編寫程式時,經常會遇到需要對一系列資料或操作進行重複處理的情況。為了實現這一點,我們需要使用循環或遞歸。循環和遞歸都是常用的處理方式,但在實際應用中,它們各有優缺點,因此在選擇使用哪種方法時需要考慮實際情況。本文將對Go語言中的循環和遞歸進行比較研究。一、循環循環是一種重複執行某段程式碼的機制。 Go語言中主要有三

lambda表達式跳出循環,需要具體程式碼範例在程式設計中,循環結構是常用的一種重要語法。然而,在特定的情況下,我們可能希望在循環體內滿足某個條件時,跳出整個循環,而不是僅僅終止當前的循環迭代。在這個時候,lambda表達式的特性可以幫助我們達成跳脫循環的目標。 lambda表達式是一種匿名函數的宣告方式,它可以在內部定義簡單的函數邏輯。它與普通的函數聲明不同,

這篇文章將為大家詳細講解有關PHP返回數組所有值,組成一個數組,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。使用array_values()函數array_values()函數傳回陣列中所有值的陣列。它不會保留原始數組的鍵。 $array=["foo"=>"bar","baz"=>"qux"];$values=array_values($array);//$values將是["bar","qux"]使用迴圈可以使用循環手動獲取數組的所有值並將其新增至一個新

Iterator介面Iterator介面是一個用於遍歷集合的介面。它提供了幾個方法,包括hasNext()、next()和remove()。 hasNext()方法傳回布林值,指示集合中是否還有下一個元素。 next()方法傳回集合中的下一個元素,並將其從集合中刪除。 remove()方法從集合中刪除目前元素。以下程式碼範例示範如何使用Iterator介面來遍歷集合:Listnames=Arrays.asList("John","Mary","Bob");Iterator

區別:1、for透過索引來循環遍歷每一個資料元素,而forEach透過JS底層程式來循環遍歷數組的資料元素;2、for可以透過break關鍵字來終止迴圈的執行,而forEach不可以;3、 for可以透過控制迴圈變數的數值來控制迴圈的執行,而forEach不行;4、for在迴圈外可以呼叫迴圈變量,而forEach在迴圈外不能呼叫迴圈變數;5、for的執行效率要高於forEach。

所有程式語言都離不開循環。因此,預設情況下,只要有重複操作,我們就會開始執行循環。但是當我們處理大量迭代(數百萬/十億行)時,使用循環是一種犯罪。您可能會被困幾個小時,後來才意識到它行不通。這就是在python中實現向量化變得非常關鍵的地方。什麼是矢量化?向量化是一種在資料集上實現(NumPy)數組運算的技術。在後台,它將操作一次應用於數組或系列的所有元素(不同於一次操作一行的“for”循環)。接下來我們使用一些用例來示範什麼是向量化。求數字總和##使用循環importtimestart

用迭代取代Java函數中的遞迴呼叫在Java中,遞歸是一個強大的工具,用來解決各種問題。但是,在某些情況下,使用迭代可能是更好的選擇,因為它更有效且不易出現堆疊溢位。以下是迭代的優點:效率更高,因為它不需要為每個遞歸呼叫建立新的堆疊幀。不容易發生堆疊溢出,因為堆疊空間使用受限。替代遞歸呼叫的迭代方法:Java中有幾種方法可以將遞歸函數轉換為迭代函數。 1.使用棧使用棧是將遞歸函數轉換為迭代函數最簡單的方法。堆疊是一種後入先出(LIFO)資料結構,類似函式呼叫堆疊。 publicintfa
