首頁 > 運動

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

由 向陽花開滿山紅 發表于 運動2022-12-01

簡介如果要擴充套件程式,如:要列印100行,只需要修改外部迴圈的結束條件即可

python有指標嗎

上一次課中,我們講到了演算法和流程圖。

演算法是

解決問題的思路或步驟

,類似解數學題一樣,第一步做什麼、第二步做什麼,套用什麼公式等。

流程圖是

描述演算法的一種圖形化的表示方法

,使得問題更加直觀、簡單易懂。

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

本次課的學習目標:

巢狀雙重for迴圈

01

知識點:巢狀雙重for迴圈

前面在講

if

條件結構時,學習過條件巢狀結構。同樣的,迴圈也可以巢狀。

比如:列印

10

*

號。你可以這樣:

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

如果讓你列印

100

個、

1000

個甚至更多這樣的

*

號,這樣編寫程式碼顯然就不行了。這時,就必須要考慮到我們前面學過的迴圈語句,採用

for

迴圈結構是最簡單的方式。

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

不知道看懂沒有?只需要修改一下迴圈的結束條件,比如:將

100

改為

1000

,就可以列印

1000

*

號了。透過這種方式,想列印多少

*

號就可以列印多少。

我們更進一步:如果要列印這樣的圖形,該怎麼實現呢?

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

是不是可以這樣思路:列印一行

10

*

號,需要一個可以重複

10

次的迴圈結構;這樣的行數有

5

行,那就需要

5

個這樣的迴圈結構。

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

儘管上述程式碼實現了我們預期的目標,但是這樣的程式碼存在大量的重複(冗餘),而且擴充套件性不好。比如:現在我要列印

100

行、

1000

行、甚至更大這樣每行

10

*

號的行,就需要不斷的複製重複上述程式碼。

那麼,可不可以這樣,將上圖中單個方框內的部分作為迴圈體,在其外圍再套一重迴圈,結構如下:

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

內部迴圈代表列數,每行列印

10

個這樣的

*

號;外部迴圈代表行數,可以讓內部迴圈重複執行

5

次。如果要擴充套件程式,如:要列印

100

行,只需要修改外部迴圈的結束條件即可。

這就是經典的巢狀雙重

for

迴圈,

外層迴圈代表行,內層迴圈代表列。

在列印平面圖形時,就需要考慮使用這種結構。

02

案例:九九乘法表

九九乘法表就是一個

9X9

的平面圖形,只不過它不是一個完整的矩形,而是一個三角形結構。

第一行只有

1

列,第二行有

2

列,依次每行增加

1

列,到第九行有

9

列。

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

根據前面的分析,需要採用巢狀雙重

for

迴圈結構。有九行,外層迴圈的迴圈結束條件就是

9

;問題在於內層迴圈的結束條件是多少呢?

每一行的列數不同,內層迴圈的結束條件就不能是一個固定值。

再分析:

第一行1

列,第二行2

列,第三行3

列……

也就是說:內層迴圈的結束條件與行數相同,它會受到行數的影響。所以,我們的程式碼應該這樣寫:

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

這樣,直角三角形就做好了,最後修改輸出的

*

號,構造成表示式輸出即可。

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

執行結果如下:

C++入門基礎系列:巢狀雙重for迴圈實現起來很簡單

03

總結

本次課重點講解了巢狀雙重迴圈的實現過程。同學們在遇到列印平面圖形的案例時,別忘了使用此結構。

,在實踐中體會程式設計的無窮樂趣吧。

Tags:迴圈列印巢狀10這樣