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 }
