雙重for循環
1、概述
很多情況下,單層for循環並不能滿足我們的需求,比如我們要打印一個5行5列的圖形,打印一個倒直角三角形等,此時就可以通過循環嵌套來實現
循環嵌套是指在一個循環語句中再定義一個循環語句的語法結構,例如在for循環語句中,可以再嵌套一個for循環,這樣的for循環語句我們稱之為雙重for循環。
// 1、雙重for循環 語法結構 // for (外層的初始化變量; 外層的條件表達式; 外層的操作表達式) { // for (里層的初始化變量; 里層的條件表達式是; 里層的操作表達式) { // // 執行語句; // } // } // 2、我們可以把里面的循環看做是外層循環的語句 // 3、外層循環循環一次,里面的循環執行全部 // 4、代碼驗證、 for (var i = 1; i <= 3; i++) { console.log('這是外層循環第' + i + '次'); for (var j = 1; j <= 3; j++) { console.log('這是里層循環第' + j + '次'); } }
// 打印五行五列星星 var str = ''; for (var i = 1; i <= 5; i++) { //外層循環負責五行打印 for (var j = 1; j <= 5; j++) { str = str + '★' } // 如果一行打印完畢5個星星就要另起一行 加 \n str = str + '\n'; } console.log(str);
// 打印n行n列的星星 var rows = prompt('請您輸入行數'); var cols = prompt('請您輸入列數'); str = ''; for (var i = 1; i <= rows; i++) { for (var j = 1; j <= cols; j++) { str = str + '★'; } str = str + '\n'; } console.log(str);
// 打印倒三角形案例 var str = ''; for (var i = 1; i <= 10; i++) { //外層循環控制行數 for (var j = i; j <= 10; j++) { //里層循環打印的個數不一樣 j=i str = str + '★'; } str = str + '\n'; } console.log(str);
// 打印正三角形案例 var str = ''; for (var i = 1; i <= 10; i++) { for (var j = 1; j <= i; j++) { str = str + '★'; } str = str + '\n'; } console.log(str);
// 九九乘法表案例 // 一共有9行,但是每行的個數不一樣,隱刺需要用到雙重for循環 // 外層的for循環控制行數 i,循環9次,可以打印9行 // 內層的for循環控制每行公式 j // 核心算法:每一行 公式的個數正好和行數一致,j<=i; // 每行執行完畢,都需要重新換一行 var str = ''; for (var i = 1; i <= 9; i++) { for (var j = 1; j <= i; j++) { str += j + '×' + i + '=' + i * j + '\t'; } str = str + '\n'; } console.log(str);
for循環小結
- for循環可以重復執行某些相同的代碼
- for循環可以重復執行些許不同的代碼,因為我們有計數器
- for循環可以重復執行某些操作,比如算術運算符加法操作
- 隨着需求增加,雙重for循環可以做更多、更好看的效果
- 雙重for循環,外層循環一次,內層for循環全部執行
- for循環是循環條件和數字直接相關的循環
- 分析要比寫代碼更重要