------- android培訓、java培訓、期待與您交流!----------
for循環的使用
爲什麼要出現for循環?
當我們要打印很多數或者要重複的執行某一些代碼時,就要用到循環的方式去實現它,而for循環無疑是其中一種好辦法,它給我們提供了
一種重複執行某一動作的方法
for循環的書寫格式:
for(變量 ; 表達式 ;表達式)
for循環的執行步驟:
例子:for(intx=0;x<=100;x++)
{
System.out.println(x);
}
一開始先初始化x,判斷x<=100,滿足條件就執行System.out.println(x); 如果不滿足條件,直接跳出for循環 然後執行x++
注意:x=0這句代碼只有第一次進來的時候執行
1 用for循環打印圖形的分析
1)對於打印長方形,外循環控制的是行數,內循環控制的是每一行的列數。也就是一行中的個數
例子:打印以下圖形的分析
******
******
******
行數是3,列數是6個*
那麼我麼可以定義一個外循環,循環次數爲3次
for(int x=0;x<3;x++)
同時我們也要定義一個內循環,一次就打印6個* ,循環次數是6次,一次打印一個*
for(int y=0;y<6;y++)
{
System.out.print("*");
}
注意外循環執行完一次,那麼就在屏幕上打印了這個圖形****** ,要換行操作,不然會連續在同一行打印出來
System.out.println();
/*
例子1:打印長方形
*/
class ChangF
{
public static void main(String[] args)
{
for(int x=0;x<3;x++)
{
for(int y=0;y<6;y++)
{
System.out.print("*");
}
System.out.println();
}
}
}
2)在控制檯上打印以下圖形
******
*****
****
***
**
*
分析:
圖形有6行,所以外循環是6次 for(int x=0;x<6;++)
圖形第一行有6列,第二行有5列,第三行有4列,第四行有3列,第五行有2列
從長方形例子可以得知,我們要再定義一個內循環,但是打印圖形是遞減的,怎麼辦呢?
外循環執行第一次的時候,內循環就打印了6個*
內循環打印6個*的代碼是
for(int y=6;y>0;y--)
{
System.out.print("*");
}
內循環打印5個*的代碼是
for(int y=5;y>0;y--)
{
System.out.print("*");
}
內循環打印4個*的代碼是
for(int y=4;y>0;y--)
{
System.out.print("*");
}
.....
由上面可以看出,只有y的初始化值在不斷變化,而且是外循環執行一次,就減一
所以得到內循環:
for(int y=6-x;x>0;x++)
{
System.out.print("*");
}
外循環執行一次就換行:
System.out.println();
/*
例子2的代碼
*/
class ForTest4
{
public static void main(String[] args)
{
for(int x=0;x>6;x++)
{
for(int y=6-x;x>0;x++)
{
System.out.print("*");
}
System.out.println();
}
}
}
3)在控制檯上打印以下圖形
*
**
***
****
*****
分析:
行數是5行,外循環次數爲5次,外循環表達式:for(int x=0;x<5;x++)
第一次執行外循環,內循環就打印一個* ,
for(int y=0;y<1;y++)
{
System.out.print("*");
}
第一次執行外循環,內循環就打印兩個* ,
for(int y=0;y<2;y++)
{
System.out.print("*");
}
第一次執行外循環,內循環就打印三個* ,
for(int y=0;y<3;y++)
{
System.out.print("*");
}
由上面分析可以得知,表達式隨着外循環次數的變化而變化,不難推斷表達式是,y<x+1
定義內循環
第一次執行外循環,內循環就打印一個* ,
for(int y=0;y<x+1;y++)
{
System.out.print("*");
}
外循環執行完一次,程序要做換行操作
System.out.println();
/*
例子3代碼
*/
class ForTest3
{
public static void main(String[] args)
{
for(int x=0;x>5;x++)
{
for(int y=0;xy<x+1;y++)
{
System.out.print("*");
}
System.out.println();
}
}
}
由以上三個例子得出總結:
尖朝上,可以改變條件,讓條件隨着外循環變化
尖朝下,可以改變初始化值,讓初始化隨着外循環變化
4) 在控制檯上打印以下圖形
*
* *
* * *
* * * *
* * * * *
分析:
圖形等效於
----*
---* *
--* * *
-* * * *
* * * * *
其實這是一個5行5列的圖形,因爲行數決定外循環,列數決定內循環所以可以初步寫出for循環的框架
for(int x=1;x<=5;x++)
{
for(int y=1;y<=5;y++){}
}
打印兩個圖形: "-" 和"*"+""
外循環決定圖形行數,有5行:
for(x=1;x<=5;x++)
假設內循環變量爲y:
當外循環x=1時,y=1,2,3,4的時候就打印"-" 當y=5的時候就打印"*"+" " y>=5-1+1
當外循環x=2時,y=1,2,3的時候就打印"-" 當y=4,5的時候就打印"*"+" " y>=5-2+1
當外循環x=3時,y=1,2的時候就打印"-" 當y=3,4,5的時候就打印"*"+" " y>=5-3+1
當外循環x=4時,y=1時候就打印"-" 當y=2,3,4,5的時候就打印"-"+" " y>=5-4+1
當外循環x=5時,不打印"-" 當y=1,2,3,4,5時候打印"-"+" " y>=5-5+1
由上面可以推出:
內循環判斷條件
當y>=5-x+1 時, 就打印"*"+" " 否則就打印的時候就打印"-"
所以得出內循環
for(int y=0;y<5;y++)
{
if(y>=5-x)
System.out.print("*"+" ");
else
System.out.print(" ");
}
/*
例子三代碼
*/
class ForTest3
{
public static void main(String[] args)
{
for(int x=1;x<=5;x++)
{
for(int y=1;y<=5;y++)
{
if(y>=5-x+1)
System.out.print("*"+" ");
else
System.out.print(" ");
}
System.out.println();
}
}
}
2 無限循環的最簡單表現形式。(不寫條件,默認爲true) 面試可能會問到
for(;;){}
while(true){}
3 累加思想。
原理:通過變量記錄住每次變化的結果。
通過循環的形式,進行累加動作。
4 計數器思想。
通過一個變量記錄住數據的狀態變化
也要通過循環完成。
5 製表符:\t 九九乘法表時候用到
例子:寫個九九乘法表的程序
分析:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 *3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=205*5=25
......
發現這個形狀是一個圖形,
行數是9,列數也是9, 像個長方形,所以要用兩個for循環表示
可以得出for循環的初始形式
for(int x=1;x<=9;x++)
{
for(int y=1;y<=9;y++)
{
}
}
當x=1時,y=1,乘法表的內容是 1*1=1;
當x=2時,y=2乘法表的內容是 2*1=2 2*2=4
當x=3時,y=3,乘法表的內容是 3*1=3 3*2=6 *3=9
......
不難看出內循環每次要輸出的語句是:x+"*"+y+"="+(y*x)+""
爲了對齊輸出的語句,在後面加上製表符\t: x+"*"+y+"="+(y*x)+""+"\t"
外循環執行完一次,就換行一次
System.out.println()
/*
這是一個九九乘法表的程序
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 *3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
......
*/
class JiuJiu
{
public static void main(String[] args)
{
for(int x=1;x<=9;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(x+"*"+y+"="+(y*x)+" "+"\t");
}
System.out.println();
}
}
}
6 break:跳出循環
w:for(intx=0;x<3;x++)
標號爲w break:w表示跳出以上循環語句
7 continue:只能用於循環結構,結束本次循環,繼續下一次循環
for(intx=0;x<3;x++)
{
//continue表示當x=0讀了continue,就返回x++,判斷x<3,再讀continue,再x++
所以continue下面的語句讀不到
contiune;
System.out.print(x);
}
8 break和continue單獨存在時,下面可以有任何語句,因爲都執行不到
break和continue都有作用的範圍
9 函數的定義:
爲什麼會出現函數?
就像一個人,有自己的屬性和行爲動作,
java裏面也有自己的屬性和行爲動作,這個行爲動作就是函數或者叫做方法
我們定義一個類,那麼我們肯定是讓這個類有某一些功能,這時候我們就要定義函數了
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數1。。)
{
執行語句;
return 返回值;
}
如果函數沒有返回值,return語句可以省略
10注意
明確返回值類型
明確函數的參數列表:參數類型和參數的個數
11 同一個類中,允許存在一個以上的同名函數,只要他們的參數個數和參數類型不同即可
12什麼時候用重載
當函數功能相同,但是參數列表不同,爲了方便閱讀,這時就用到重載
注意:重載和返回值類型沒關係,就算返回值類型不一樣但是函數名一樣,參數列 表不相同,函數就重載了
例子:
public staticint add(int a ,int b)
returna+b;
public staticint add(int a ,int b,int c)
returna+b+c;
------- android培訓、java培訓、期待與您交流!----------
當外循環x=5時,y=0,1,2,3的時候就打印"-" 當y=4的時候就打印"*"+" " y>=5-1
當外循環x=4時,y=0,1,2,的時候就打印"-" 當y=3,4的時候就打印"*"+" " y>=5-2
當外循環x=3時,y=0,1的時候就打印"-" 當y=2,3,4的時候就打印"*"+" " y>=5-3當外循環x=2時,y=0的時候就打印"-" 當y=1,2,34的時候就打印"*"+" " y>=5-4
當外循環x=1時, 不打印"-" 當y=0,1,2,344的時候就打印"*"+" " y>=5-5