91 lines
60 KiB
JavaScript
91 lines
60 KiB
JavaScript
import{_ as t}from"./chunks/ArticleMetadata.Sb1DYAHo.js";import{_ as p,D as k,o as n,c as e,I as g,w as r,k as h,a as d,R as C,b as o,e as B}from"./chunks/framework.FVQzxbLi.js";import"./chunks/md5.RtphNWHi.js";const D="/assets/202010081210666.AZDfFjNN.jpeg",y="/assets/202010081210728.cc1YOSnz.png",c="/assets/202010081210737.RfxlmhNa.jpeg",E="data:image/png;base64,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",F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeoAAACzCAYAAABGm1+xAAAHmElEQVR4nO3cMXYaWxKA4WLWIhKOV3BZgbWJyW6HVuLs7cAJhFb2NtGswFqCk2YvNYEERx63RjwdC9XA90WNRB0R8fs2ZRaZmQEAlPSvj34BAMDLhBoAChNqAChMqAGgMKEGgMJOC/VuiMViEcPunV8NAPALJ2oAKGw+1PttrIdd7A+Pl6to0WK1PD4hdsM6tvvZaQDgD5kJ9T523+7i4f42luvh9xjvtzGsl3F7/xB339wLB4D3NBPqm/j8fYpx06M93MfdchHrbz8jIuLnt3Uslndx/9Ci9TGm75/P/HIB4Los/vdXiO5jN/w7bu8fjj9pfYy/v36Om5szvDoAuHInLZO1Z1efVhEh0gBwFi+Eeh+77RDrxeNn0dF7tGjRe8T93W0sF+sYts+WzQCAdzG7TLZdL+P27j4eWo/NlPHj6yoiIlZff0ROm2jx8Bhs/7EaAN7V7DLZl7/647LYj+/x5SYipp9x/JT65kv8yCk2vcfmq2UyAHhPryyTPdkNsbi9jz5mWPQGgPPxzWQAUNhpJ2oA4EM4UQNAYUINAIUJNQAUJtQAUJhQA0BhQg0AhQk1ABQm1ABQmFADQGFCDQCFCTUAFCbUAFCYUANAYUINAIUJNQAUJtQAUJhQA0BhQg0AhQk1ABQm1ABQ2Gmh3g2xWCxi2L3hL3zULABcACdqAChsPtT7bayHXewPj5eraNFitTw+IXbDOrb7QrMAcIFmQr2P3be7eLi/jeV6+D2K+20M62Xc3j/E3bf/vif9UbMAcKFy1pTjpmeLyIjI1nu2aNl7y4jIiJatjzmVmgWAy7PIzHw54/vYDf+O2/uH409aH+Pvr5/j5ua1fwJ81CwAXI6Tlsnas6tPq4j4B7H8qFkAuAQvhHofu+0Q68XjZ8LRe7Ro0XvE/d1tLBfrGLbPlr5KzALABfr9bviUm/b4GXG0npspM6dNtmjPrp9+38ciswBwmWZO1Dfx5a8erY8x/fgeX24iYvoZx0+Lb77Ej5xi03tsvn4uMgsAl+mVZbInuyEWt/fRx4zv/7SRHzULABfAN5MBQGGnnagBgA/hRA0AhQk1ABQm1ABQmFADQGFCDQCFCTUAFCbUAFCYUANAYUINAIUJNQAUJtQAUJhQA0BhQg0AhQk1ABQm1ABQmFADQGFCDQCFCTUAFCbUAFCYUANAYaeFejfEYrGIYfeGv3BtswDwBzlRA0Bh86Heb2M97GJ/eLxcRYsWq+XxCbEb1rHdmwWAd5W/mXLskRGR0XpupsycNtmiHa97e/p9H698FgDe10yoMzOnHDc9WzwGqvWeLVr23h6DFS1bH3MyCwDv6oVQH0w5HmN1iNiY00nFurZZAPjzTloma8+uPq0i4ub0W+vXNgsAf9R8v1+/Fdw3b7+NfFmzAPB+ZpfJNoflqReWqw5Bm1vMuq5ZAHhf8yfqsf+6PDX2jEO4MjNzyk3vzx5f8SwAvKNFZuar98d3Qyxu76OPGd8//8N769c2CwB/kG8mA4DCTjtRAwAfwokaAAoTagAoTKgBoDChBoDChBoAChNqAChMqAGgMKEGgMKEGgAKE2oAKEyoAaAwoQaAwoQaAAoTagAoTKgBoDChBoDChBoAChNqAChMqAGgMKEGgMJOC/VuiMViEcPuDX/B7HlmAbhITtQAUNh8qPfbWA+72B8eL1fRosVqeXxC7IZ1bPdmP2wWgOuQv5ly7JERkdF6bqbMnDbZoh2ve3v6fR/NfsgsANdiJtSZmVOOm54tHkPRes8WLXtvj+GIlq2POZn9wFkArsELoT6YcjxG4xCTMaeTymH2PLMAXLKTlsnas6tPq4i4OfG+utmzzQJwoeb7/fot2b55++1cs39iFoBrMLtMtjksMb2w5HQIy9yClNlzzAJwLeZP1GP/dYlp7BmHgGRm5pSb3p89Nnv2WQCuwivLZE/GnhGRbzrYmT3PLAAXyTeTAUBhi8zMj34RAMA8J2oAKEyoAaAwoQaAwoQaAAoTagAoTKgBoDChBoDChBoAChNqAChMqAGgMKEGgMKEGgAKE2oAKEyoAaAwoQaAwoQaAAoTagAoTKgBoDChBoDChBoACjst1LshFotFDLs3/AWzlz0LwLtyogaAwuZDvd/GetjF/vB4uYoWLVbL4xNiN6xjuzd7dbMAnFf+ZsqxR0ZERuu5mTJz2mSLdrzu7en3fTR7VbMAnNtMqDMzpxw3PVs8vmG33rNFy97b4xt4tGx9zMnsFc4CcE4vhPpgyvH45n14Ux9zOukd3OxlzwJwDictk7VnV59WEXFzypTZa5gF4J3N9/v1W6N98/bbqmb/n2cBOKfZZbLNYZnohWWjwxv83KKS2UueBeDc5k/UY/91mWjsGYc38szMnHLT+7PHZq9mFoCzemWZ7MnYMyLyTQcss5c9C8C78s1kAFDYIjPzo18EADDPiRoAChNqAChMqAGgMKEGgMKEGgAKE2oAKEyoAaAwoQaAwoQaAAoTagAoTKgBoDChBoDChBoAChNqAChMqAGgMKEGgMKEGgAKE2oAKEyoAaAwoQaAwoQaAAoTagAoTKgBoDChBoDChBoAChNqAChMqAGgMKEGgML+A0+cz9vJX2ttAAAAAElFTkSuQmCC",u="data:image/png;base64,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",m="data:image/png;base64,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",Q="data:image/png;base64,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",I="/assets/202010081212778.cN_c7dD1.png",v="/assets/202010081216912.T8eJzHZh.png",b="/assets/202010081217251.TS0zRZ9i.png",f="data:image/png;base64,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",Y=JSON.parse('{"title":"多重循环","description":"","frontmatter":{"title":"多重循环","author":"查尔斯","date":"2020/10/08 13:22","categories":["Java基础快速入门"],"tags":["Java","Java基础"]},"headers":[],"relativePath":"courses/java/01-Java语法入门/11-多重循环.md","filePath":"courses/java/01-Java语法入门/11-多重循环.md","lastUpdated":1661518927000}'),w={name:"courses/java/01-Java语法入门/11-多重循环.md"},P=h("h1",{id:"多重循环",tabindex:"-1"},[d("多重循环 "),h("a",{class:"header-anchor",href:"#多重循环","aria-label":'Permalink to "多重循环"'},"")],-1),x=C('<h2 id="前言" tabindex="-1">前言 <a class="header-anchor" href="#前言" aria-label="Permalink to "前言""></a></h2><p><strong>C:</strong> 对于很多同学来讲,上一篇,可以说是对你当前逻辑思维能力的检验篇。</p><p>逻辑思维强的同学,套着思路分析步骤和语法,很容易就写完了练习。而逻辑思维不强的同学,则因为缺少相应的练习,思路不畅导致代码写的自己都看不懂,更别提遵守什么代码规范了。但是如果认真敲完笔者的案例,应该是可以很容易看得懂一些参考答案的,只不过就是自己想不出来,甚至因而变得焦躁、钻牛角尖(为什么自己想不到,为什么别人可以想到?)。</p><p><img src="'+D+'" alt="202010081210666"></p><p>那逻辑思维除了先天之外,自然也是可以后天培养的。笔者的培养方法是个笨方法:那就是多做练习。既然想不到解决方法,那就塌下心来学习别人怎么做,甚至是背代码,最后做多了,量变引发质变,就可以提升出自己的东西。</p><p>这种方法当然不能称之为好,但是目前它适合普罗大众,你要做的就是塌下心来,承认自己的不足,学习解决思路。</p><div class="tip custom-block"><p class="custom-block-title">笔者说</p><p>这类话,笔者后面文章也会反复提起,一次两次你是听不进去的。</p></div><p>本篇我们继续学习循环结构,不过是对循环的更高级玩法,所以难度更大。不过别担心,笔者会通过思路分析一点点的带你进行案例实现。</p><h2 id="why" tabindex="-1">Why? <a class="header-anchor" href="#why" aria-label="Permalink to "Why?""></a></h2><p>在学完了基本的循环结构后,我们也掌握了对简单的有规律性、重复性步骤的优化能力。别飘,新的需求又来了,看看下方的图形,如何用程序在控制台打印出来呢?</p><img src="'+y+`" width="55%"><p>不同的人看待问题的角度不同,有些同学一看到它就会想:这个需求一点不难,实现很简单,看看下方已经被押送 "海王星" 的同学写的实现。</p><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 第一个图形</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">){</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 第二个图形</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" *****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" *****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" *****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" *****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*****"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 第三个图形</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" * "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" *** "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" ***** "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" ******* "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*********"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span></code></pre></div><p><img src="`+c+`" alt="202010081210737"></p><p>谁看谁不落泪?一点毛病都没有!所以也怪笔者的需求描述不清楚,那再对需求补充一个要求:使用循环,以一颗 <code>*</code> 一颗 <code>*</code> 的形式来实现打印这些图形。</p><p>头疼了吧?因为现有的技术你基本无法实现。 <strong>单层循环无法解决稍微复杂些的需求。</strong></p><h2 id="概述" tabindex="-1">概述 <a class="header-anchor" href="#概述" aria-label="Permalink to "概述""></a></h2><p>多重循环(嵌套循环),其实就是一个循环体内又包含另一个完整的循环结构。</p><p>和嵌套 if 是一回事。各循环之间可互相嵌套,但一般不超过三层,否则导致逻辑混乱,因小失大。又因为一般都是二层嵌套,故往往称为二重循环/双重循环。</p><p><strong>常见的多重循环伪代码如下:</strong></p><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">while</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (外层循环条件) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...外层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> while</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (内层循环条件) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...内层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">do</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...外层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> do</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...内层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">while</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (内层循环条件);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">while</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (外层循环条件);</span></span></code></pre></div><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (;外层循环条件;) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...外层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (;内层循环条件;) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...内层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">while</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (外层循环条件) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...外层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (;内层循环条件;) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...内层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (;内层循环条件;) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> ...内层循环操作...</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">笔者说</p><p>多重循环要比嵌套 if 难。因为 <strong>内层循环 就是 外层循环的 循环操作的 组成部分</strong> ,所以程序执行特点是: <strong>外层循环执行一次,内层循环执行一遍。</strong></p></div><h2 id="使用" tabindex="-1">使用 <a class="header-anchor" href="#使用" aria-label="Permalink to "使用""></a></h2><p>接下来笔者带大家打打样,看看多重循环一般怎么用,也找找它们的使用规律。</p><h3 id="打印矩形" tabindex="-1">打印矩形 <a class="header-anchor" href="#打印矩形" aria-label="Permalink to "打印矩形""></a></h3><p>之前我们的单层循环,是解决一行行具有规律性的需求,每一行输出的格式比较稳定,例如下方输出:</p><p><img src="`+E+`" alt="202010081211672"></p><p>这回这些复杂的图形,不仅要求我们考虑行的规律,还需要考虑每行内的规律(列)。</p><p>有规律的内容就要靠循环实现,两个有规律就要用两个循环,三个有规律就用三个循环,以此类推。</p><p>而列是包含在行内的, <strong>所以意味着实现行规律的循环 要 包含着实现列规律的循环</strong> ,这就是多重循环的应用场景了。</p><div class="tip custom-block"><p class="custom-block-title">笔者说</p><p>你就记住这类需求的一个规律,<strong>外层循环可以控制行规律,内层循环控制每行内容(列)的规律</strong> 。</p></div><p><strong>思路分析:</strong></p><ol><li><p>根据需求,行和列都有重复性规律,采用多重循环</p></li><li><p>确定此案例中,两个循环的组成部分</p><p>外层循环</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:内层循环,每行结尾换行</li></ul><p>内层循环</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:打印每颗 <code>*</code></li></ul></li><li><p>由于两个都是固定次数循环,套用 for 循环的语法来编写代码</p></li><li><p>检查是否能正常结束循环</p></li></ol><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 外层循环,执行五次,每次输出一行*</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环,执行五次,每次输出一个*</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">){</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 不换行输出*</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 每行结尾换行</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">();</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><h3 id="打印直角三角形" tabindex="-1">打印直角三角形 <a class="header-anchor" href="#打印直角三角形" aria-label="Permalink to "打印直角三角形""></a></h3><p><img src="`+F+`" alt="202010081211708"></p><p><strong>思路分析:</strong></p><ol><li><p>根据需求,行和列都有重复性规律,采用多重循环</p></li><li><p>确定此案例中,两个循环的组成部分</p><p>外层循环</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:内层循环,每行结尾换行</li></ul><p>内层循环</p><ul><li>循环条件:<code>2 * 外层循环变量 - 1</code></li><li>循环操作:打印每颗 <code>*</code></li></ul></li><li><p>由于两个都是固定次数循环,套用 for 循环的语法来编写代码</p></li><li><p>检查是否能正常结束循环</p></li></ol><div class="tip custom-block"><p class="custom-block-title">笔者说</p><p>每行 <code>*</code> 的规律是我们在学习数学数列时最常见的规律,第一行:1、第二行:3、第三行:5、第四行:7、第五行:9...</p></div><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 外层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 每行结尾换行</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">();</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><h3 id="打印等腰三角形" tabindex="-1">打印等腰三角形 <a class="header-anchor" href="#打印等腰三角形" aria-label="Permalink to "打印等腰三角形""></a></h3><p><img src="`+u+'" alt="202010081211825"></p><p><strong>思路分析:</strong></p><ol><li><p>根据需求,行和列都有重复性规律,采用多重循环</p><p>等腰三角形的一部分和刚才的直角三角形规律是一样的,你看看把这个图形变换一下,是不是就明白了?</p><p><img src="'+m+`" alt="202010081212507"></p><p>但此次多重循环不能只是两个循环了,我们需要多准备一个循环来实现每行打印规律的空格。</p></li><li><p>确定此案例中,三个循环的组成部分</p><p>外层循环</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:内层循环1,内层循环2,每行结尾换行</li></ul><p>内层循环1:</p><ul><li>循环条件:<code><= 5 - 外层循环变量</code></li><li>循环操作:打印一个空格</li></ul><p>内层循环2:</p><ul><li>循环条件:<code>2 * 外层循环变量 - 1</code></li><li>循环操作:打印每颗 <code>*</code></li></ul></li><li><p>由于三个都是固定次数循环,套用 for 循环的语法来编写代码</p></li><li><p>检查是否能正常结束循环</p></li></ol><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 外层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环1</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">){</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环2</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">;j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">){</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 每行结尾换行</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">();</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><h3 id="打印平行四边形" tabindex="-1">打印平行四边形 <a class="header-anchor" href="#打印平行四边形" aria-label="Permalink to "打印平行四边形""></a></h3><p><img src="`+Q+`" alt="202010081212677"></p><p><strong>思路分析:</strong></p><ol><li><p>根据需求,行和列都有重复性规律,采用多重循环</p></li><li><p>确定此案例中,三个循环的组成部分</p><p>外层循环</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:内层循环1,内层循环2,每行结尾换行</li></ul><p>内层循环1:</p><ul><li>循环条件:<code><= 5 - 外层循环变量</code></li><li>循环操作:打印一个空格</li></ul><p>内层循环2:</p><ul><li>循环条件:<code><= 5</code></li><li>循环操作:打印每颗 <code>*</code></li></ul></li><li><p>由于三个都是固定次数循环,套用 for 循环的语法来编写代码</p></li><li><p>检查是否能正常结束循环</p></li></ol><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 外层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环1</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> k</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; k </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i; k</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">" "</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环2</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 5</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"*"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 每行结尾换行</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">();</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><h3 id="打印九九乘法表" tabindex="-1">打印九九乘法表 <a class="header-anchor" href="#打印九九乘法表" aria-label="Permalink to "打印九九乘法表""></a></h3><p><img src="`+I+`" alt="202010081212778"></p><p><strong>思路分析:</strong></p><ol><li><p>根据需求,行和列都有重复性规律,采用多重循环</p></li><li><p>确定此案例中,两个循环的组成部分</p><p>外层循环</p><ul><li>循环条件:<code><= 9</code></li><li>循环操作:内层循环,每行结尾换行</li></ul><p>内层循环</p><ul><li><p>循环条件:<code><= 外层循环的循环变量</code></p><p>第1行打印1个,第2行打印2个,第3行打印3个....</p></li><li><p>循环操作:打印乘法运算</p><ul><li>第1个操作数:内循环的循环变量</li><li>第2个操作数:外循环的循环变量</li></ul></li></ul></li><li><p>由于两个都是固定次数循环,套用 for 循环的语法来编写代码</p></li><li><p>检查是否能正常结束循环</p></li></ol><div class="language-java vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">java</span><pre class="shiki shiki-themes github-light github-dark-dimmed vp-code"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;">// 外层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 9</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 内层循环</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">int</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#6CB6FF;"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">; j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"><=</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i; j</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">) {</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">(j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">+</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;"> "*"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">+</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;"> "="</span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> (j </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> i) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F47067;">+</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;"> "</span><span style="--shiki-light:#005CC5;--shiki-dark:#F47067;">\\t</span><span style="--shiki-light:#032F62;--shiki-dark:#96D0FF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">);</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#768390;"> // 每行结尾换行</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#DCBDFB;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">();</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#ADBAC7;">}</span></span></code></pre></div><h2 id="答题环节" tabindex="-1">答题环节 <a class="header-anchor" href="#答题环节" aria-label="Permalink to "答题环节""></a></h2><h3 id="打印数字等腰三角形" tabindex="-1">打印数字等腰三角形 <a class="header-anchor" href="#打印数字等腰三角形" aria-label="Permalink to "打印数字等腰三角形""></a></h3><p><strong>需求:</strong> 使用多重循环根据用户输入的数字,输出如下图形。</p><p><img src="`+v+'" alt="202010081216912"></p><h3 id="倒序打印九九乘法表" tabindex="-1">倒序打印九九乘法表 <a class="header-anchor" href="#倒序打印九九乘法表" aria-label="Permalink to "倒序打印九九乘法表""></a></h3><p><strong>需求:</strong> 使用多重循环倒序打印九九乘法表。</p><p><img src="'+b+'" alt="202010081217251"></p><h3 id="打印菱形" tabindex="-1">打印菱形 <a class="header-anchor" href="#打印菱形" aria-label="Permalink to "打印菱形""></a></h3><p><strong>需求:</strong> 使用多重循环输出如下图形。</p><p><img src="'+f+'" alt="202010081217621"></p><h2 id="后记" tabindex="-1">后记 <a class="header-anchor" href="#后记" aria-label="Permalink to "后记""></a></h2><p>你就套着思路分析的步骤,塌下心来实现一下,相似的问题一定要回忆起相似的解决方法。别学一个忘一个,下一篇笔者带你学习一种专业工具,这样就可以逐行的看程序执行了。</p><div class="info custom-block"><p class="custom-block-title">笔者说</p><p>对于技术的学习,笔者一贯遵循的步骤是:先用最最简单的 demo 让它跑起来,然后学学它的最最常用 API 和 配置让自己能用起来,最后熟练使用的基础上,在空闲时尝试阅读它的源码让自己能够洞彻它的运行机制,部分问题出现的原因,同时借鉴这些技术实现来提升自己的代码高度。</p><p>所以在笔者的文章中,前期基本都是小白文,仅仅穿插很少量的源码研究。当然等小白文更新多了,你们还依然喜欢,后期会不定时专门对部分技术的源码进行解析。</p></div>',71);function z(s,q,S,G,N,j){const A=t,l=k("ClientOnly");return n(),e("div",null,[P,g(l,null,{default:r(()=>{var i,a;return[(((i=s.$frontmatter)==null?void 0:i.aside)??!0)&&(((a=s.$frontmatter)==null?void 0:a.showArticleMetadata)??!0)?(n(),o(A,{key:0,article:s.$frontmatter},null,8,["article"])):B("",!0)]}),_:1}),x])}const X=p(w,[["render",z]]);export{Y as __pageData,X as default};
|