for循環語句,雙從for嵌套:
/*
for(初始化表達式;循環條件表達式;循環后的操作表達式)
{ 執行語句; } */
/*1,變量有自己的作用域。對於for來講:如果將用於控制循環的增量定義在for語句中。那么該變量只在for語句內有效。 for語句執行完畢。該變量在內存中被釋放。
2,for和while可以進行互換。如果需要定義循環增量。用for更為合適。 總結: 什么時候使用循環結構? 當要對某些語句執行很多次時,就使用循環結構。 */
class ForDemo { public static void main(String[] args) { for(int x = 0; x<3 ; x++) { System.out.println("x="+x); } //System.out.println("x===="+x); int y=0; while(y<3) { System.out.println("y="+y); y++; } System.out.println("y===="+y); } }
//語句嵌套形式。其實就是語句中還有語句。 //循環嵌套。 class ForForDemo { public static void main(String[] args) { for(int x=0; x<3; x++)// { for(int y=0; y<4; y++) { System.out.print("*"); } System.out.println();//只有一個功能就是換行。 } System.out.println("-------------------"); /* ***** **** *** ** * 發現圖形有很多行,每一個行有很多列。 要使用嵌套循環。原理:形象說法:大圈套小圈。 */ //int z = 5; for (int x=0; x<5 ;x++ )//x<5:因為外循環控制行數。一共5行。 { for (int y=x; y<5 ;y++) { System.out.print("*"); } System.out.println(); //z++; } } } /* **** **** **** 對於打印長方形:外循環控制的行數。內循環控制的是每一行的列數。也就是一行中元素的個數。 ***** **** *** ** * */
九九乘法表:
/*
*
**
***
****
*****
1
12
123
1234
12345
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
class ForForTest
{
public static void main(String[] args)
{
/*
*
**
***
****
*****
不是規律的規律:
尖朝上,可以改變條件。讓條件隨着外循環變化。
尖朝下,可以初始化值,讓初始化隨着外循環變化。
*/
for (int x=0; x<5 ;x++ )
{
for (int y=0 ; y<=x ; y++ )
{
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------");
/*
1
12
123
1234
12345
*/
for (int x=1; x<=5; x++)
{
for (int y=1; y<=x;y++ )
{
System.out.print(y);
}
System.out.println();
}
System.out.println("----------------------");
/*
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
for (int x=1; x<=9 ; x++)
{
for (int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}
/* ----* ---* * --* * * -* * * * * * * * * * * * * * -* * * * --* * * ---* * ----* */ class ForForTest2 { public static void main(String[] args) { for (int x=0; x<5 ;x++ ) { for(int y=x+1; y<5 ; y++) { System.out.print(" "); } for(int z=0; z<=x ; z++) { System.out.print("* "); } System.out.println(); } } }
class ForTest { public static void main(String[] args) { int x = 1; for(System.out.println("a"); x<3 ;System.out.println("c"),x++) { System.out.println("d"); //x++; } //adcdc for(int y=0; y<3; y++) { } /* 無限循環的最簡單表現形式。 for(;;){} while(true){} */ } }
累加計數器:
/* 1,獲取1~10的和,並打印。 */ class ForTest2 { public static void main(String[] args) { /* //1,定義變量用於存儲不斷變化的和。 int sum = 0; //2,定義變量,記錄住不斷變化的被加的數。 int x = 1; //3,定義循環,重復加法的過程。 while(x<=10) { sum = sum + x; x++; } System.out.println("sum="+sum); */ /* 循環注意: 一定要明確哪些語句需要參與循環,哪些不需要。 */ /* 0+1 1+2 3+3 6+4 */ //用for來體現。 int sum = 0; for(int x=0; x<=10; x++) { sum += x; } System.out.println("for sum = "+sum); /* 其實這就是累加思想。 原理:通過變量記錄住每次變化的結果。 通過循環的形式。進行累加動作。 */ } }
/* 2,1~100之間 7的倍數的個數。並打印。 思路: 1,先對1~100進行循環(遍歷)通過循環的形式。 2,在遍歷的過程中,定義條件。只對7的倍數進行操作。 3,因為7的倍數不確定,只要符合條件,就通過一個變量來記錄住這個變化的次數。 步驟: 1,定義循環語句,選擇for語句。 2,在循環中定義判斷。只要是7的倍數即可。使用if語句。條件:7的倍數 x%7==0; 3,定義變量,該變量隨着7的倍數的出現而自增。 */ class ForTest3 { public static void main(String[] args) { int count = 0; for(int x=1; x<=100; x++) { if(x%7==0) //System.out.println("x="+x); count++; } System.out.println("count="+count); /* 計數器思想。 通過一個變量記錄住數據的狀態變化。 也許通過循環完成。 */ } }
函數:
class FunctionDemo { public static void main(String[] args) { /* int x = 4; System.out.println(x*3+5); x = 6; System.out.println(x*3+5); */ //int y = 4*3+5; //int z = 6*3+5; //int x = getResult(4); //System.out.println("x="+x); //int y = getResult(6); getResult(5); } //發現以上的運算,因為獲取不同數據的運算結果,代碼出現了重復。 //為了提高代碼的復用性。對代碼進行抽取。 //將這個部分定義成一個獨立的功能。方便與日后使用。 //java中對功能的定義是通過函數的形式來體現的。 //需要定義功能,完成一個整數的*3+5的運算, //1,先明確函數定義的格式。 /* 修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,) { 執行語句; return 返回值; } //當函數運算后,沒有具體的返回值時,這是返回值類型用一個特殊的關鍵字來標識。 //該關鍵字就是void。void:代表的是函數沒有具體返回值的情況。 //當函數的返回值類型是void時,函數中的return語句可以省略不寫。 */ public static void getResult(int num) { System.out.println(num * 3 + 5); return;//可以省略 } }
class FunctionDemo2 { public static void main(String[] args) { /* int sum = getSum(4,6); System.out.println("sum="+sum); sum = getSum(2,7); System.out.println("sum="+sum); */ //get(4,5); int x = getSum(4,4); int y = getSum(7,9); int num = getMax(x,y); } /* 這個功能定義思想有問題,為什么呢?因為只為完成加法運算,至於是否要對和進行打印操作, 那是調用者的事,不要在該功能中完成。 public static void get(int a,int b) { System.out.println(a+b); return ; } */ /* 如何定義一個函數呢? 1,既然函數是一個獨立的功能,那么該功能的運算結果是什么先明確 因為這是在明確函數的返回值類型。 2,在明確在定義該功能的過程中是否需要未知的內容參與運算。 因為是在明確函數的參數列表(參數的類型和參數的個數)。 */ //需求:定義一個功能。完成3+4的運算。並將結果返回給調用者。 /* 1,明確功能的結果:是一個整數的和。 2,在實現該功能的過程中是否有未知內容參與運算,沒有。 其實這兩個功能就是在明確函數的定義。 1,是在明確函數的返回值類型。 2,明確函數的參數列表( 參數的類型和參數的個數)。 public static int getSum() { return 3+4; } */ /* 以上這個函數的功能,結果是固定的,毫無擴展性而言。 為了方便用戶需求。由用戶來指定加數和被加數。這樣,功能才有意義。 思路: 1,功能結果是一個和。返回值類型是int。 2,有未知內容參與運算。有兩個。這個兩個未知內容的類型都是int。 */ public static int getSum(int x,int y) { return x+y; } /* 需求:判斷兩個數是否相同。 思路: 1,明確功能的結果:結果是:boolean 。 2,功能是否有未知內容參與運算。有,兩個整數。 */ public static boolean compare(int a,int b) { /* if(a==b) return true; //else return false; */ //return (a==b)?true:false; return a==b; } /* 需求:定義功能,對兩個數進行比較。獲取較大的數。 */ public static int getMax(int a,int b) { /* if(a>b) return a; else return b; */ return (a>b)?a:b; } }
重載
/* 什么時候用重載? 當定義的功能相同,但參與運算的未知內容不同。 那么,這時就定義一個函數名稱以表示起功能,方便閱讀,而通過參數列表的不同來區分多個同名函數。 */ class FunctionOverload { public static void main(String[] args) { // add(4,5); // add(4,5,6); print99(); } public static void print99(int num) { for(int x=1; x<=num; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } //打印99乘法表 public static void print99() { print99(9); } //定義一個加法運算,獲取兩個整數的和。 public static int add(int x,int y) { return x+y; } //定義一個加法,獲取三個整數的和。 public static int add(int x,int y,int z) { return add(x,y)+z; } } /* void show(int a,char b,double c){} a. void show(int x,char y,double z){}//沒有,因為和原函數一樣。 b. int show(int a,double c,char b){}//重載,因為參數類型不同。注意:重載和返回值類型沒關系。 c. void show(int a,double c,char b){}//重載,因為參數類型不同。注意:重載和返回值類型沒關系。 d. boolean show(int c,char b){}//重載了,因為參數個數不同。 e. void show(double c){}//重載了,因為參數個數不同。 f. double show(int x,char y,double z){}//沒有,這個函數不可以和給定函數同時存在與一個類中。 */
矩形,99表
/* 1,定義一個功能,用於打印矩形。 2,定義一個打印99乘法表功能的函數。 */ class FunctionTest { public static void main(String[] args) { // draw(5,6); // printHr(); // draw(7,9); // printHr(); print99(); } /* 定義一個打印99乘法表功能的函數。 */ public static void print99() { for(int x=1; x<=9; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } /* 定義一個功能,用於打印矩形。 思路: 1,確定結果:沒有,因為直接打印。所以返回值類型是void 2,有未知內容嗎?有,兩個,因為矩形的行和列不確定。 */ public static void draw(int row,int col) { for(int x=0; x<row; x++) { for(int y=0; y<col; y++) { System.out.print("*"); } System.out.println(); } } public static void printHr() { System.out.println("------------------------------"); } }
面向對象函數:
http://www.cnblogs.com/itcqx/p/5546906.html

1 /* 2 練習:3000米長的繩子,每天減一半。問多少天這個繩子會小於5米?不考慮小數。 3 4 */ 5 class ForTest4 6 { 7 public static void main(String[] args) 8 { 9 int day = 0; 10 for(int x=3000; x>=5; x/=2) 11 { 12 day++; 13 } 14 System.out.println("day="+day); 15 16 /* 17 for(int x=3000; x>=5; day++) 18 { 19 x = x/2; 20 } 21 */ 22 } 23 }