黑馬程序員_for循環和函數


------- 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

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章