這節我們來看一下for循環的嵌套.
先直接看一個例子
~~~
class ForForDemo
{
public static void main(String[] args)
{
/*
大圈套小圈思想
*/
for(int x=0;x<2;x++)
{
for(int y=0;y<3;y++)
{
System.out.println("x="+x+",y="+y);
}
}
/*
+-+-+-+-+
+-+-+-+-+
+-+-+-+-+
+-+-+-+-+
+-+-+-+-+
*/
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
System.out.print("+-");
}
System.out.println("+");
System.out.println();
}
}
}
~~~
結果如下:

上面遍歷輸出的例子讓我們看到嵌套的for語句,每一執行一次外循環,內循環都會完全的循環一次.
我們也打出了一個"+"號的方陣.
我們再看幾個其它for嵌套的小例子,讓我們更清晰的看看for的嵌套特點
~~~
class ForForDemo2
{
public static void main(String[] args)
{
/*
******
*****
****
***
**
*
*/
System.out.println("-------------");
for(int i=0;i<6;i++)//有6行
{
for(int j=0;j<6-i;j++)//for(int j=i;y<6;j++)每一行的*數在遞減,從6個開始到最后一行的1個
{
System.out.print("*");
}
System.out.println();
}
/*
*
**
***
****
*****
******
*/
System.out.println("-------------");
for(int x=0;x<6;x++)//有6行
{
for(int y=0;y<x+1;y++)//下面的一行比上面一行多一個*,并且我們能夠發現每一行對應*數與行數相同
{
System.out.print("*");
}
System.out.println();
}
/*
654321
54321
5432
543
54
5
*/
System.out.println("-------------");
for(int a=1;a<=6;a++)//有6行
{
for(int b=6;b>=a;b--)//每行的數字都是對就行號(遞減的行號)遞減輸出
{
System.out.print(b);
}
System.out.println();
}
/*
1
22
333
4444
55555
666666
*/
System.out.println("-------------");
for(int m=1;m<=6;m++)//有6行
{
for(int n=1;n<=m;n++)//每一行輸出對應行號的數字,并且列數遞增
{
System.out.print(m);
}
System.out.println();
}
}
}
~~~
結果:

最后我再看兩個和前面幾個例子稍有不同的例子
~~~
class ForForTest
{
public static void main(String[] args)
{
/*
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
……
思路:
從乘法表來看,共有9行
每一行有與行號相同的列數
表達式輸出是列數*行號=積的形式
行號是遞增,每一行的列數也是遞增
*/
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(j+"*"+i+"="+j*i+"\t");//\t是制表符
}
System.out.println();
}
/*
\n:回車
\t:制表符
\b:退格
\r:按下回車鍵
不同系統的回車鍵是不同的
windows系統中回車符其實是由兩個字符號組成的 \r\n
linux中回車符是 \n
*/
System.out.println("===============================");
/*
* * * * *
* * * *
* * *
* *
*
這實際上是兩個三角形組成
*/
for(int x=1;x<=5;x++)
{
for(int y=1;y<x;y++)//這個就是上一個例子中的第二個小例子,只不過是把*號變成了空格
{
System.out.print(" ");
}
for(int z=x;z<=5;z++)//按遞減的方式輸出"* ",從每一行的5個到最后一行的1個即可
{
System.out.print("* ");
}
System.out.println();//每一行完成之后換行
}
}
}
~~~
結果:

我們看到了傳說中的99乘法表哦.
- 前言
- 1.1 基本常識
- 1.2 Java語言概述
- 1.3 Java語言的環境搭建
- 1.4 Java程序開發之初體驗--Hello World
- 2.1 關鍵字
- 2.2 標識符
- 2.3 注釋
- 2.4 常量
- 2.5 進制掃盲
- 2.6 變量和數據類型(1)
- 2.7 變量和數據類型(2)
- 2.8 運算符
- 3.1 if語句
- 3.2 switch語句
- 3.3 while和do-while語句
- 3.4 for語句
- 3.5 for循環的嵌套
- 3.6 break語句與continue語句
- 4.1 函數的定義
- 4.2 定義函數的兩個明確
- 4.3 函數的內存加載過程
- 4.4 函數的重載
- 5.1 數組的定義
- 5.2 數組的內存分配及特點
- 5.3 數組操作中常見問題
- 5.4 數組常用操作(1)
- 5.5 數組常用操作(2)
- 5.6 二維數組
- 6.1 面向對象的概述
- 6.2 類與對象的關系
- 6.3 對象的內存體現
- 6.4 成員變量與局部變量
- 6.5 類類型參數與匿名對象
- 6.6 基本數據類型參數與引用數據類型參數的傳遞過程
- 6.7 封裝
- 7.1 構造函數概述與默認構造函數
- 7.2 構造函數與一般函數的區別
- 7.3 構造函數的重載
- 7.4 構造函數的內存加載
- 7.5 構造函數需要注意的幾個細節
- 7.6 this關鍵字的原理
- 7.7 this關鍵字的細節與應用
- 8.1 static關鍵字之特點
- 8.2 成員變量與靜態變量的區別
- 8.3 static關鍵字使用的注意細節
- 8.4 main函數的解析與細節
- 8.5 static關鍵字的使用場景
- 8.6 靜態的內存加載
- 8.7 靜態代碼塊
- 8.8 構造代碼塊
- 9.1 繼承
- 9.2 單繼承與多重繼承
- 9.3 子父類中成員變量特征體現