一、格式java
for (初始化語句1 ; 循環的條件表達式2; 初始化變量的自增3 ) {編程
循環體語句;4服務器
}學習
模擬執行時會出現的狀況:(從左邊開始)this
1spa
2 false for語句結束設計
2true -4-3-2true-4-3-2true-4-3-2false-結束code
二、執行流程:對象
三、說明:blog
代碼示例
而且:(偏門用法)
代碼示例
class Demo_3 {
//for語句的注意事項
public static void main(String[] args) {
//初始化變量只執行一次
for(int i = 1,j=6;i < j/*必須是boolean類型的*/;i = i +3,j=j - 1)/*;*/{
//若是循環體語句中只有一條語句,咱們能夠省略大括號
//循環體語句
System.out.println(i+" "+j);//循環體語句是在初始化變量自增前執行
}
}
}
練習1
打印數字1-5
練習2
打印數字5-1
練習3
計算1+2+3+...+100的和
練習4
計算1-100的偶數和
練習5
列舉全部的「四葉玫瑰數」,並統計四葉玫瑰數的個數
四葉玫瑰數:是一個四位數,各個位的數字的四次方的和,爲該數字自己
一、在一次大的循環中,每次的循環內容(循環體語句)又是一個複雜的操做,是重複的操做,就須要在大的循環體語句中,定義小的循環,稱爲循環的嵌套(在打印矩形或其餘形狀的圖案時,若是使用兩層for嵌套,外層循壞表示行數,內層循環表示列的個數)
二、格式:
for(初始化語句1 (1); 循環條件表達式1(2);初始變量的自增1(3)){
for(初始化語句2(4);循環條件表達式2(5);初始變量自增2(6)){
循環體語句7
}
}
模擬語句運行的流程以下:
1->2false 結束
1 -> 2true ->4 -> 5 false 內層循環結束->3->2 直到2爲false 循環結束
1 -> 2true -> 4 -> 5 true -> 7 -> 6 ->5 true(回到7) false-> 3 -> 2(true)回到4 ,2爲false結 束
三、執行流程
循環條件表達式1,true,初始化語句2,循環條件表達式2,true,循環體語句,初始變量自增2,循環條件表達式2,false,
代碼示例
class Demo_2 { public static void main(String[] args) { //嵌套循環 /* for(初始化語句1;循環條件表達式1;初始化變量自增1){ for(初始化語句2;循環條件表達式2;初始變量自增2){ 循環體語句; } } */ for(int i = 1;i < 6 ;i++){//外層循環循環一次,內層循環是要執行完 for(int j = 1;j < 4;j++){ System.out.println("i = " + i +";j = " + j); } } } }
練習1
使用嵌套循環,打印四行五列星星矩形
*****
*****
*****
*****
提示:打印不換行,使用print方法,不要加ln
class Demo_7 { public static void main(String[] args) { /* 使用嵌套循環,打印四行五列星星矩形 ***** ***** ***** ***** 提示:打印不換行,使用print方法,不要加ln */ //外層循環控制行數,內層循環控制列數 for(int i = 1;i < 5;i++){ //內層循環控制列數 for(int j = 1;j < 6;j++){ System.out.print("*"); } //換行 System.out.println(); } } }
練習2
使用嵌套循環,打印5行5列的直角三角形
*
**
***
****
class Demo_8 { public static void main(String[] args) { /* 使用嵌套循環,打印5行5列的直角三角形 * 1行 打印1列,內層循環1次 ** 2行 打印2列,內層循環2次 *** 3行 打印3列,內層循環3次 **** ***** */ for(int i = 1;i < 6;i++){ for(int j = 1;j <= i;j++){ System.out.print("*"); } System.out.println(); } } }
練習3
打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
........................................
1*9=9 2*9=18 3*9=27 .......... 8*9=72 9*9=81
class Demo_9 { public static void main(String[] args) { /* 打印99乘法表 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ........................................ 1*9=9 2*9=18 3*9=27 .......... 8*9=72 9*9=81 */ for(int i = 1; i<=9 ; i++){ for(int j = 1; j <= i; j++){ System.out.print(j + "*" + i + "=" + i*j +"\t"); } System.out.println(); } } }
一、格式:
初始化語句
while(條件表達式) {
循環體語句;
初始化變量的自增;
}
二、執行流程:
三、注意事項:
代碼示例
class Demo_10 { public static void main(String[] args) { //while語句 /* 初始化語句 while(條件表達式){ 循環體語句; 初始變量的自增; } */ int i = 1; while(i < 6){ System.out.println("愛你一萬年"); //初始變量的自增 // i++;//i = i * 2; System.out.println(i++); } } }
練習
使用while循環,統計1-100範圍內,有多少數字能夠被7整除
class Demo_11 { public static void main(String[] args) { //使用while循環,統計1-100範圍內,有多少數字能夠被7整除 int i = 1; //定義一個輔助變量用來統計被7整除的個數 int count = 0; while(i <= 100){ //判斷是否能夠被7整數 if(i % 7 == 0){ count++; } //初始變量的自增 i++; } System.out.println(count); } }
一、格式:
初始化語句;
do {
循環體語句;
初始化變量的自增;
} while (循環條件表達式);
二、執行流程:
三、注意事項:
代碼示例
class Demo_12 { public static void main(String[] args) { //do while 語句 //初始化變量 int i = 1; do{ System.out.println("do while虛幻"); //初始化變量的自增 ++i; }while(i < 5); //經常使用的循環語句,for語句,while語句 } }
一、do while語句和其餘兩種語句的區別:
二、while語句和for的區別:
一、死循環:無限循環。循環永遠都不中止。
二、格式:
一、for語句的死循環:
for ( ; ; ) {
循環體語句;
}
二、while語句的死循環:【經常使用】
while (true) {
循環體語句;
}
注意:
//破壞循環的方法:使條件變爲false
//方式:1.直接使判斷表達式條件變爲false 2.經過修改自增表達式(不必定使用a++這種),使判斷表達式失效即爲false 3.使用break,continue,return,system.exit(0)結束循環/方法/虛擬機
三、死循環的做用:
代碼示例
import java.util.Scanner; class Demo_14 { public static void main(String[] args) { //死循環 //for語句的死循環 /* for(;;){ System.out.println("死循環"); } */ //System.out.println("我能執行到嗎,好好想一想"); //while語句的死循環 //while (true){ // System.out.println(true); // } Scanner sc = new Scanner(System.in); System.out.println("選擇你心儀的戰隊"); while(true){ int a = sc.nextInt(); if(a == 1){ System.out.println("I like RNG"); break; }else if(a == 2){ System.out.println("I like IG"); break; }else if(a == 3){ System.out.println("I like FPX"); break; }else if(a == 4){ System.out.println("I like SKT"); break; }else if(a == 5){ System.out.println("I like DWG"); break; }else{//不加else有可能一個語句體都不執行,加上後要執行一個語句體 System.out.println("你輸入的戰隊不存在,請從新輸入"); }} }}
一、跳轉語句:在循環的循環體語句中,結束循環,控制循環,使用的語句。
二、continue語句:
三、break語句:
四、return語句:
五、System.exit(0);
代碼示例
class Demo_15 { public static void main(String[] args) { //跳轉語句 for(int i = 1;i<=10;i++){ //continue if(i == 5){ continue;//結束本次循環,繼續下次循環 } System.out.println(i); } System.out.println("----------=================="); // break語句 for(int i = 1;i<=10;i++){ if( i == 5){ break;// 把整個循環結束了 } System.out.println(i); } System.out.println("------------------------------------"); //return for(int i = 1;i<=5;i++){ for(int j = 1;j < 8;j++){ if( j == 5){ return;// 直接把方法結束了 //break; //結束的是內層循環,外層循環不受影響 //System.exit(0);//把虛擬機結束了 } System.out.println("i = "+i +";j="+j); }}}}
一、具備某種特定功能的代碼段
二、某段代碼常用,因此使用大括號,將這段代碼包起來,起個名字。之後就使用這個名字來代替這段代碼。
三、好處:
一、方法定義的格式
修飾符 返回值類型 方法名稱 (參數列表) {
方法體語句;
return語句;//使用void時,return後面不接東西,表示結束這個方法,其餘返回值類型,return返回對應類型數據做爲這個方法的一個結果輸出
}
二、詳細解釋:
注:靜態方法在訪問本類的成員時,只容許訪問靜態成員(即靜態成員變量和靜態方法),而不容許訪問實例成員變量和實例方法;實例方法則無此限制。
一、格式:直接書寫方法名稱便可(在不使用面向對象編程的時候)
方法名稱(實際參數);
二、方法調用的三種形式:
三、方法調用整體特色:
方法不調用,就不執行。
代碼示例
class Demo_17 { public static void main(String[] args) { //方法的調用 //直接調用 method_1(); method_2(/*實際參數*/5,8); //輸出調用 method_3(1,2);//sum System.out.println(method_3(3,4)); //賦值調用 int a = method_3(2,3); System.out.println(a); } //無參數列表,無返回值 public static void method_1(){ System.out.println("method_1 方法被調用了"); } //有參數列表的,無返回值 public static void method_2(/*定義諾幹個變量*/int i ,int j){ System.out.println("method_2 方法被調用了"+ "i= "+i +";j="+ j ); } //有參數列表,有返回值的 public static int method_3(/*定義諾幹個變量*/int i ,int j){ System.out.println("method_3"); int sum = i + j; return sum; } }
一、方法定義:
二、參數列表:
三、return語句:
一、重載:Overload,超載
二、方法的重載:(只有參數的數據類型,個數,參數的位置這三個改變,纔算方法重載)
三、說明:
四、方法重載的好處:
五、當前學習過的常見重載:
println方法,任意類型的數據,均可以放到這個方法中打印
在System.out類型中,將各類數據類型的打印方法,都定義出來了,都起了println方法的名稱
代碼示例
class Demo_20 { public static void main(String[] args) { //方法的重載 int a = 1; int b = 2; System.out.println(sum(a,b)); double m = 1.2; double n = 1.3; System.out.println(sum(1.2,1.3)); //重載 System.out.println(1);//PrintStream System.out.println(1.2); System.out.println("asdf"); } //在同一個類中,方法名字同樣,參數列表不一樣(參數的數據類型不同,參數的順序不同,參數的個數不同)與返回值類型無關 public static int sum(int a,int b){ return a + b; } public static double sum(double a,double b){ return a + b; } /*public static double sum(double aa,double bb){ return aa + bb;不是方法的重載 }*/ public static double sum(double a,int b){ return a + b; } public static double sum(int a,double b){ return a + b; } public static int sum(int a,int b,int c){ return a + b + c; } }
練習1
定義一個方法getMax,能夠獲取兩個整數的較大值
在主方法中,鍵盤錄入兩個整數,調用方法獲取二者最大值
練習2
定義一個方法isEqual,能夠判斷兩個小數是否相等
在主方法中,鍵盤錄入兩個整數,自動提高爲小數,調用方法比較二者是否相等
練習3
定義一個方法,能夠打印指定行數和列數的矩形
在主方法中,鍵盤錄入兩個整數,做爲行數和列數,調用方法打印對應規模的矩形import java.util.Scanner;class Practice {
public static void main(String[] args) { /*
練習1
定義一個方法getMax,能夠獲取兩個整數的較大值 在主方法中,鍵盤錄入兩個整數,調用方法獲取二者最大值 練習2 定義一個方法isEqual,能夠判斷兩個小數是否相等 在主方法中,鍵盤錄入兩個整數,自動提高爲小數,調用方法比較二者是否相等 練習3 定義一個方法,能夠打印指定行數和列數的矩形 在主方法中,鍵盤錄入兩個整數,做爲行數和列數,調用方法打印對應規模的矩形 */ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); //boolean boo = isEqual_1(a,b); //System.out.println(boo); //int max = getMax(a,b); //System.out.println(max); printJuXing(a,b); } //獲取兩個整數的最大值 public static int getMax(int x,int y){ if(x > y){ return x ; }else{ return y; } //int z = x > y ? x : y; //return z; } //比較兩個數是否相等 public static void isEqual(double d1,double d2){ String str = d1 == d2 ? "相等":"不相等"; System.out.println(str); } //比較兩個數是否相等 public static boolean isEqual_1(double d1,double d2){ return d1 == d2 ? true:false; } //能夠打印指定行數和列數的矩形 public static void printJuXing(int hang,int lie){ //嵌套循環 //外層循環控制行,hang for(int i = 1 ;i <= hang;i++){ //內層循環控制列數 for(int j = 1 ;j <= lie; j++){ System.out.print((char)3+" "); } System.out.println(); } return ; } }