標籤:數組類 ++ 流程 導致 初始化 死迴圈 col 靈活 ==
第三天,分支判斷迴圈
1、switch()
(1)括弧中的必須是int char類型
(2)break是可選的,其作用就是退出switch這個整體,如果不加,在break後面 case、default後的語句會直接使用。
(3)default 只出現一次,位置一般是在最後,實際可以自由出現。
(4)Switch 後圓括弧中填寫的值是小於等於int類型的數字值,也可以填寫字串,必須所有的case都是字串類型。
(5)Switch 和if。。Elseif 對比:
if....else if比較多樣性較高。而switch只是做等值比較。
2、迴圈結構:
For (用的較多)
While (其次)
do....while (用的較少)
For(初始化部分;比較部分;狀態改變部分)
{ 迴圈語句;}
比較部分:指的是符合條件就繼續運行下去,不符合就跳出for。
特徵:重複執行某段代碼,直到某個狀態到達,停止執行。
變數的名稱最好有一定的意義,至少這樣的名稱不推薦使用,例如a,b,a1,b1等。
控制迴圈次數的運算式書寫不正確,容易導致無限迴圈(或稱死迴圈)。絕大部分情況下,無限迴圈沒有意義,但作為伺服器編程,無限迴圈是需要的。
for (int i = 10; i>0;i-- )這個i只在for中有效。For迴圈結束後i還需要重新定義。
for,while:是先判斷後執行 do....while:先執行後判斷
如:
int i =1;
do{
System.out.print(i+" , ");
i++;
}while(i<0);
是會輸出的。
Break:在迴圈中的意思就是,中斷,打斷,(當前)迴圈流程。當要打斷非當前的迴圈時:(加上一個邏輯名稱)。
例如:
public class Test1 { public static void main(String[] args) { out: for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { System.out.print("[" + i + " , " + j + "]"); if (i == 2 && j == 2) { break out; } } System.out.println(""); } }}
加了out邏輯名後就直接退出到邏輯名處。
continue:繼續當前迴圈的下一次。意思就是程式執行到continue這語句時會直接執行下一個迴圈,忽視continue後面的改迴圈的語句。
例如
for (int j = 10;j>0 ;j-- ) { if (j ==8) { continue; } j--; System.out.print(j+" , "); }
當j==8之後不會再執行 j--和System 會直接跳到j=7。
3、數組和字串:
數組和字串都是類型,都是物件類型。(與基礎資料型別 (Elementary Data Type)分開)。
(1)數組:
什麼是數組:一堆相同類型的變數吧他們集中在一起,統一管理。
主要學習的文法:
定義數組(3種)
int[] ages = new int[34];//稱為ages數組。[]裡的是數組的長度
int[] ages1 = {18,19,20};//不推薦使用這種定義。ages1 = {1,2,3,4};這就語法錯誤了。再次賦值容易出錯。
int[] ages2 = new int[]{18,19,20};
數組的一些術語
長度length:就是數組中值的個數
元素element:就是每一個具體的值,專業的說法叫做元素(數組的元素)。
下標(索引)index:就是某個元素在數組中的位置。位置從0開始計數。
基本類型的數組,如果不賦值,預設值是上廣義上的0。Boolean對應的是false。
物件類型數組,預設值是null。
例如:
public class Test1 { public static void main(String[] args) { int[] ages = new int[34]; String[] s = new String[3]; System.out.println("["+ages[0]+"]"); System.out.println("["+s[0]+"]"); }}
輸出的是: [0]
[null]
使用它
int[] ages = new int[3];//稱為ages數組。
ages[3] = 20;
編譯沒問題但是運行出錯ArrayIndexOutOfBoundsException。因為數組長度為3,但是是從0開始計數
進階的使用(遍曆,把數組的所有資訊給取出來)
public class Test1 { public static void main(String[] args) { int[] ages = new int[3]; ages[0] = 10; ages[1] = 20; ages[2] = 30; for (int age: ages ) { System.out.println(age+" , "); } }}
採用foreach迴圈方法:for(數群組類型 定義名稱 : 數組本體) 簡單遍曆方式。優點:簡單編寫,缺點:只能遞增式遍曆 缺乏靈活性。
一般的:
public class Test1 { public static void main(String[] args) { int[] ages = new int[3]; ages[0] = 10;//賦值 ages[1] = 20; ages[2] = 30; for (int i =0;i<ages.length ;i++ ) { System.out.print("["+ages[i]+"] , "); } }}
搭配:迴圈
For,while,do...while
foreach迴圈,是jdk1.5以後添加的新功能
進階一些
4、字串
String
定義方法: 定義字串類型的變數(更準確的說定義字串對象)
String str1 = "abc";
還有一種是物件類型特有的定義變數(對象)的方法,關鍵字是new。
String str2 = new String("bbb");
構造方法:
String(String)
String(char[])
普通方法:
char charAt(int)
int length()
Char[] toCharArray()
物件類型或多或少都有內建方法(函數),提供一定的邏輯。例如:字串的個數(長度)
int len = str1.length();
擷取字串中某個位置上(下標)的字元
char first = str1.charAt(0);//0字串的第一個字元
char last = str1.charAt(len-1);//最後一個字元
字串變字元數組
char[] ch = str1.toCharArray();
Java從入門到入土100天,第三天