回顧
一、java語言特點
二、配置java環境 path
三、記事本 javac -d . java 包名.類名
四、eclipse
五、變量 定義變量 數據類型 變量名=值;
六、相關的數據類型
? 基本(四類 、8種)、引用
? 類型轉換(自動、強制)
? 運算符(算術 ++ --、邏輯 && & || |、比較、三元 )
? 三目:變量 = 表達式一 ? 表達式二 :表達式三
七、變量名的命名規則
八:順序結構
九:選擇結構
? if(){} if(){}else if(){}else if(){} if()else{}
? switch(表達式){} byte short int char enum string
十、循環結構
for
for(變量初始化;控制循環條件;變量的遞增或者遞減){循環體;
}
第一次循環:變量初始化;(只執行一次)控制循環條件循環體變量的遞增或者遞減
第二次運行、第三次....控制循環條件循環體變量的遞增或者遞減int i = 1;
for(;;){if(i++>=5){break;}
}
當明確循環次數的情況下,使用for循環。如果不確定循環次數,就選擇while循環。
開發過程中,基本使用for循環。
while
先判斷、再執行。
while(條件){循環體;
}
外部;
示例1:
// 通過while循環打印10遍"Hello World"int i = 1;while(i++ <= 10) {System.out.println("hello world!");
// i++;}
示例2:
// 需求:限定用戶輸入內容。
// 提示用戶輸入1~7(含1和7)之間的數字。
// 如果用戶輸入的數字范圍不在1~7之內,
// 讓用戶重新輸入,直到用戶輸入的數字符合要求。Scanner sc = new Scanner(System.in);// System.out.println("請輸入1-7之間的數字:");
// int num = sc.nextInt();
// while(num<1 || num>7) {
// System.out.println("請輸入1-7之間的數字:");
// num = sc.nextInt();
// }// int num = 0;
// do {
// System.out.println("請輸入1-7之間的數字:");
// num = sc.nextInt();
// }while(num<1 || num>7);int num = 0;while(num<1 || num>7) {System.out.println("請輸入1-7之間的數字:");num = sc.nextInt();}
int num = 0; //變量初始化 表達式一while(num<1 || num>7) {//控制循環條件 表達式二System.out.println("請輸入1-7之間的數字:");num = sc.nextInt();//控制值的變化--遞增、遞減 表達式三}for(表達式一;表達式一;表達式一){}
do…while
先執行一次,再判斷。至少執行一次循環體。
do{循環體;
}while(條件);
示例:
// 需求:生成2個[10, 20]之間的隨機數,
// 如果生成的2個數不相等,
// 再重新生成,直到2個數相等。Random r = new Random();//r.nextInt(max-min+1)+minint num1 = 0;int num2 = 0;do {num1 = r.nextInt(11)+10;num2 = r.nextInt(11)+10;System.out.println(num1+"======="+num2);}while(num1 != num2);
// 輸入一個整數,判斷是幾位數。Scanner sc = new Scanner(System.in);int num = sc.nextInt();// 1/10=0 12/10/10 123/10/10/10 12345/10/10/10/10/10=0int num2 = num;int count = 0;do {num /= 10;count++;}while(num!=0);System.out.println(num2+"的位數是:"+count);
需求:輸入一個整數,判斷是幾位數。
需求:世界上最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如有一張足夠大的紙,它的厚度是0.1毫米。請問折疊多少次,可以折成珠穆朗瑪峰的高度?
需求:生成2個[10, 20]之間的隨機數,如果生成的2個數不相等,再重新生成,直到2個數相等。
需求:如果你是一個富二代,你有10億元(1000000000),每天花一半,多天可以花完。
需求:在控制臺打印出所有的水仙花數。水仙花數:是一個三位數,水仙花數的個位、十位、百位數字的立方之和等于原數。
// 需求:輸入一個整數,判斷是幾位數。 102233/10/10/10/10
//
// 需求:世界上最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),
// 假如有一張足夠大的紙,它的厚度是0.1毫米。
// 請問折疊多少次,可以折成珠穆朗瑪峰的高度?//0.1 0.2 0.4 0.8double height = 0.1;int count = 0;do {height *= 2;count++;}while(height <= 8844430);System.out.println(count);// 需求:生成2個[10, 20]之間的隨機數,如果生成的2個數不相等,再重新生成,直到2個數相等。int num1 = 0;int num2 = 0;Random r = new Random(); do {num1 = r.nextInt(11)+10;num2 = r.nextInt(11)+10;System.out.println(num1+"---"+num2);}while(num1 != num2);// 需求:如果你是一個富二代,你有10億元(1000000000),每天花一半,多天可以花完。//1000000000 /2 500000000 0int num = 1000000000;int days = 1;while((num/=2) !=0 ) {days++;}System.out.println(days++);
// 需求:在控制臺打印出所有的水仙花數。
// 水仙花數:是一個三位數,水仙花數的個位、十位、百位數字的立方之和等于原數。int i = 100;while(i<1000) {//i 100 個位 十位 百位 int a = i/100;int b = i/10%10;int c = i%10;if(a*a*a+b*b*b+c*c*c==i) {System.out.println(i+" ");}i++;}
break和continue關鍵字
break: 用于結束循環,用在switch…case結構種,用于結束case語句。
switch(){case 值:語句;break;
}for(int i=1;i<10;i++){syso(i);//break前break;syso(i);//break前 編譯不通過
}boolean flag = true;
Scanner sc = new Scanner(System.in);
while(flag){int num = sc.nextInt();if(num == 10){flag = false;}
}while(true){if(num == 10){break;syso();//編譯報錯}
}do{if(){break; }
}while(true);
示例代碼:
for(int i=1;i<10;i++) {System.out.println(i);if(i == 5) {break;}System.out.println("***");
}
System.out.println("for循環外部");
// 用戶可以在控制臺輸入任意字符串,
// 當用戶輸出字符串是"exit"的時候,
// 認為是結束輸出,用戶將不能再輸入任何內容。Scanner sc = new Scanner(System.in);while(true) {System.out.print("請輸入...");String str = sc.next();if(str.equalsIgnoreCase("exit")) {//退出break;}}
需求:猜數字。產生1個[10, 30]的隨機數,從鍵盤上輸入你的猜測結果,如果猜測的數比隨機數大,提示"你猜的數據大了",如果猜測的數比隨機數小,提示"你猜測的數據小了",如果猜測的數和隨機數一樣大,提示"恭喜你猜對了",計算出猜了幾次才猜對。
Random r = new Random();
Scanner sc = new Scanner(System.in);
int count = 0;
do {int num1 = r.nextInt(21)+10;System.out.print("請錄入:");int num2 = sc.nextInt();count++;if(num1>num2) {System.out.println("隨機數是:"+num1+"猜小了!");}else if(num1<num2) {System.out.println("隨機數是:"+num1+"猜大了!");}else {System.out.println("隨機數是:"+num1+"猜對了!");break;}
}while(true);
System.out.println("一共猜了"+count+"次!");
continue只是結束本次循環,而不是結束整個循環。continue通常情況下也是與if語句搭配使用。
for(int i = 1;i<100;i++) {if(i % 7 == 0) {continue;}System.out.print(i+" ");
}
System.out.println("----");
break、continue總結
- break用于結束當前循環。
- continue用于結束本次循環。
- break、continue通常是與if語句連用。即某種條件滿足時才break或continue。
- break使用比較頻繁,經常用在死循環里結束循環。或者用在for循環里提前結束循環。
- continue很少使用。
嵌套循環
循環嵌套:一個循環作為另外一個循環的循環體或者是循環體的一部分。
for(){ //外層循環for(){//內層循環}
}
while(){while(){}
}while(){for(){}
}[{id:1address:[{河南鄭州},{河南信陽}]},{},{}
]
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
..........
for(int i = 0;i<3;i++){System.out.println("1 2 3 4 5 ");
}
..........
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
-----------------
for(int i = 1;i < 4;i++) {//外層循環控制行 行數for(int j=1;j<=10;j++) {//內層循環控制列 列數System.out.print(j+" "); //每列的值}System.out.println();
}
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5 for(int i=1;i<=1;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=2;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=3;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=4;i++){System.out.print(i+" ");
}
System.out.println();
-------------------------------for(int i=1;i<6;i++){for(int j=1;j<=i;j++){System.out.print(j+" ");}System.out.println();
}
--------------------------------
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
平面圖形 行、列 雙層循環
外層循環控制行
內層循環控制列
for(int i=1;i<5;i++){//控制行數//第一行 i=1 列數1//第二行 i=2 列數2//第三行 i=3 列表3for(int j=1;j<=i;j++){ //控制列數 //內層循環體 打印輸出 每列的值System.out.print(j+" ");}System.out.println();
}
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
for(int i=1;i<=5;i++) {for(int j=1;j<=6-i;j++) {System.out.print(j+" ");}System.out.println();
}for(int i=5;i>=1;i--) {for(int j=1;j<=i;j++) {System.out.print(j+" ");}System.out.println();
}