流程控制與陣列—Java基礎學習(二)
Java基礎
流程控制與陣列
一、流程控制
1.1順序結構
程式從上到下逐行執行,中間沒有任何判斷和跳轉。
1.2分支結構
1.2.1 if條件語句
格式:
if(布林表示式){
語句或語句塊
}else if(布林表示式){
語句或語句塊
}else{
語句或語句塊
}
示例:
public static void main(String[] args) {
int grade = 78;
if (grade < 0) {
System.out.println("成績輸入不合規,請重新輸入!");
} else if (grade < 60) {
System.out.println("不及格");
} else if (grade >= 60 && grade < 80) {
System.out.println("良好");
} else if (80 <= grade && grade <= 100) {
System.out.println("優秀");
}
}
注:
if後面的括號裡面只能是一個邏輯表示式,即表示式返回值只能是Boolean型別。
if 、else if 、else後面只有一行語句時可以省略“{}”,但是為了可讀性一般不要省略。
在if語句中,總是把包含範圍小的條件放在前面處理。如上面程式可以寫為:
public static void main(String[] args) {
int grade = 800;
if (grade < 0 || grade > 100) {
System.out.println("成績輸入不合規,請重新輸入!");
} else if (grade >= 80) {
System.out.println("優秀");
} else if (grade >= 60) {
System.out.println("良好");
} else if (grade < 60) {
System.out.println("不及格");
}
}
1.2.2 switch語句
switch語句由一個控制表示式和多個case組成。switch語句後面的控制表示式資料型別只能是byte,short,char,int (java SE 7開始支援String)和列舉型別,不能是Boolean型別。
語法:
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數量的case語句
default : //可選
//語句
}
語法規則:① switch 語句可以擁有多個 case 語句。每個 case 後面跟一個要比較的值和冒號。
② case 語句中的值的資料型別必須與變數的資料型別相同,而且只能是常量或者字面常量。
③ 當變數的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現才會跳出 switch 語句。 當遇到 break 語句時,switch 語句終止。程式跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程式會繼續執行下一條 case 語句,直到出現 break 語句。
④ switch 語句可以包含一個 default 分支,一般是 switch 語句的最後一個分支。default 在沒有 case 語句的值和變數值相等的時候執行。default 不需要 break 語句。
示例:
public static void main(String[] args) {
String name = "張三";
switch (name) {
case "張三":
System.out.println("這是張三");
break;
case "李四":
System.out.println("這是李四");
break;
default:
System.out.println("這人我不認識");
}
}
1.3迴圈結構
Java中有三種主要的迴圈結構: ①while 迴圈 ②do…while 迴圈 ③for 迴圈
1.3.1 while迴圈
語法格式:
while( 布林表示式 ) {
//迴圈內容
}
只要布林表示式為 true,迴圈就會一直執行下去。
示例:
public static void main(String[] args) {
int i = 1;
while (i < 10) {
System.out.println(i + "\n");
i++;
}
}
輸出結果:
1
2
3
4
5
6
7
8
9
1.3.2 do…while 迴圈
語法格式:
do {
//程式碼語句
}while(布林表示式);
do…while 迴圈和 while 迴圈相似,不同的是,do…while 迴圈至少會執行一次。布林表示式在迴圈體的後面,所以語句塊在檢測布林表示式之前已經執行了。 如果布林表示式的值為 true,則語句塊一直執行,直到布林表示式的值為 false。
示例:
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i + "\n");
i++;
} while (i < 10);
}
輸出結果:
1
2
3
4
5
6
7
8
9
1.3.3 for 迴圈
語法格式:
for(初始化; 布林表示式; 更新) {java
//程式碼語句
}
for迴圈執行的次數是在執行前就確定的。最先執行初始化步驟。可以宣告一種型別,但可初始化一個或多個迴圈控制變數,也可以是空語句。然後,檢測布林表示式的值。如果為 true,迴圈體被執行。如果為false,迴圈終止,開始執行迴圈體後面的語句。 執行一次迴圈後,更新迴圈控制變數。再次檢測布林表示式。迴圈執行上面的過程。
示例:
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println(i + "\n");
}
}
輸出結果:
1
2
3
4
5
6
7
8
9
增強 for 迴圈
for(宣告語句 : 表示式)
{
//程式碼句子
}
**宣告語句:**宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。
**表示式:**表示式是要訪問的陣列名,或者是返回值為陣列的方法。
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for (int x : numbers) {
System.out.print(x + " ");
}
System.out.print("\n");
String[] names = {"abc", "def", "ghi", "klm"};
for (String name : names) {
System.out.print(name + " ");
}
}
結果
10 20 30 40 50
abc def ghi klm
1.4 控制迴圈結構
break關鍵字
break 主要用在迴圈語句或者 switch 語句中,用來跳出整個語句塊。
break 跳出最裡層的迴圈,並且繼續執行該迴圈下面的語句。
示例:
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println(i + "\n");
if (i == 3) {
break;
}
}
}
結果:
1
2
3
continue 關鍵字
continue 適用於任何迴圈控制結構中。作用是讓程式立刻終止本次迴圈跳轉到下一次迴圈的迭代。 在 for 迴圈中,continue 語句使程式立即跳轉到更新語句。在 while 或者 do…while 迴圈中,程式立即跳轉到布林表示式的判斷語句。
示例
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
if (i == 3) {
continue;
}
System.out.println(i + "\n");
}
}
結果:
1
2
4
5
6
7
8
9
二、陣列型別
陣列可用於儲存多個資料,每個陣列元素存放一個資料。再陣列中要求所有的元素有相同的資料型別,即陣列元素的型別是唯一的。
一旦陣列被初始化完成,陣列在記憶體中佔用的空間將被固定下來,因此陣列的長度不能改變。陣列是一種引用型別。
宣告陣列變數
ataType[] arrayRefVar; // 首選的方法
或
dataType arrayRefVar[]; // 效果相同,但不是首選方法
注:宣告陣列變數的時候不能指定長度。
建立陣列(陣列的初始化)
Java中陣列必先初始化,即為陣列的元素分配記憶體空間,為每個元素賦初值,然後才能使用。
陣列的初始化有以下兩種方式:
①靜態初始化:顯式指定陣列中每個元素的初始值,由系統決定陣列的長度。
dataType[] arrayRefVar = {value0, value1, ..., valuek};
②動態初始化:指定陣列的長度,由系統為陣列元素分配初始值。
dataType[] arrayRefVar = new dataType[arraySize];
示例:
public static void main(String[] args) {
// 靜態初始化
int[] intArr;
intArr = new int[]{1, 2, 3, 4, 5};
String[] strArr;
strArr = new String[]{"abc", "def"};
// 動態初始化
int[] intArr1 = new int[5];
String[] strArr1 = new String[5];
}
使用陣列
public static void main(String[] args) {
// 初始化陣列
// 靜態初始化
int[] intArr;
intArr = new int[]{1, 2, 3, 4, 5};
// 動態初始化
String[] strArr = new String[3];
// 使用陣列
// 給動態初始化陣列賦值
strArr[0] = "Hello";
strArr[1] = "word";
strArr[2] = "java";
// 列印指定陣列元素
System.out.println("intArr陣列的第一個元素:" + intArr[0]);
System.out.println("strArr陣列的第一個元素:" + strArr[0]);
// 遍歷陣列列印所有元素
for (int i = 0; i < strArr.length; i++) {
System.out.println("strArr1的第" + (i + 1) + "個元素是:" + strArr[i]);
}
// 計算陣列元素總和
int total = 0;
for (int i = 0; i < intArr.length; i++) {
total += intArr[i];
}
System.out.println("陣列intArr總和為:" + total);
}
結果:
intArr陣列的第一個元素:1
strArr陣列的第一個元素:Hello
strArr1的第1個元素是:Hello
strArr1的第2個元素是:word
strArr1的第3個元素是:java
陣列intArr總和為:15
foreach迴圈(陣列的加強for迴圈)
語法格式:
for(type element: array)
{
System.out.println(element);
}
示例:
public static void main(String[] args) {
// 加強for迴圈
int j = 1;
for (String str : strArr) {
System.out.println("strArr陣列的第"+(j++) +"個元素是:"+str);
}
}
結果:
strArr陣列的第1個元素是:Hello
strArr陣列的第2個元素是:word
strArr陣列的第3個元素是:java
多維陣列
格式如下(以二維陣列為例):
type[][] typeName = new type[typeLength1][typeLength2];
System.out.println(element);
}
示例:
```java
public static void main(String[] args) {
// 加強for迴圈
int j = 1;
for (String str : strArr) {
System.out.println("strArr陣列的第"+(j++) +"個元素是:"+str);
}
}
結果:
strArr陣列的第1個元素是:Hello
strArr陣列的第2個元素是:word
strArr陣列的第3個元素是:java
多維陣列
格式如下(以二維陣列為例):
type[][] typeName = new type[typeLength1][typeLength2];
相關文章
- JAVA基礎--二維陣列Java陣列
- 零基礎學Java(6)控制流程Java
- 【Java基礎知識】Java陣列與集合Java陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 零基礎學Java(8)陣列Java陣列
- 資料結構基礎學習之(串與陣列)資料結構陣列
- 【Java基礎知識】Java流程控制Java
- 單元3_流程控制與陣列陣列
- java基礎_05_流程控制Java
- Java基礎 - 流程控制語句Java
- NumPy 基礎 (二) - 陣列運算陣列
- python – 流程控制基礎習題Python
- 二.JS基礎-流程控制-xmind圖JS
- Java學習之陣列Java陣列
- 【java學習】控制執行流程Java
- Java學習之流程控制Java
- java基礎(十) 陣列型別Java陣列型別
- Java學習之陣列練習Java陣列
- Java核心基礎第3篇-Java流程控制Java
- Java學習之流程控制練習Java
- Java(二)陣列Java陣列
- 6-Java基礎語法-陣列之一維陣列Java陣列
- 大資料學習之路——java基礎(二)大資料Java
- Java零基礎入門(三)流程控制Java
- Java二維陣列Java陣列
- JAVA基礎學習-數字與字串學習總結Java字串
- 陣列基礎使用陣列
- Java學習筆記——陣列練習(七)Java筆記陣列
- java基礎學習:JavaWeb之ServletConfig與ServletContextJavaWebServletContext
- Java集合原始碼分析之基礎(一):陣列與連結串列Java原始碼陣列
- JAVA學習--JAVA基礎(一)Java
- Java基礎筆記09-陣列簡介Java筆記陣列
- 大資料之JAVA基礎(五):迴圈和陣列方法練習大資料Java陣列
- scala陣列與java陣列對比陣列Java
- 陣列學習陣列
- JAVA實驗二 陣列Java陣列
- JavaScript基礎(五)陣列JavaScript陣列
- JavaScript基礎——使用陣列JavaScript陣列