第一天說明簡單Hello!World說明
今天一樣是進入初階的迴圈說明,讓初步寫程式的你對於算數的語法不再困惑!
目錄
1.C++,Java,Python迴圈
2.比較
3.Java初階迴圈訓練
C++ 迴圈
/C++中常見的迴圈有for、while和do-while。
5
Java 迴圈
/Java中的迴圈與C++類似,也有for、while和do-while。
Python 迴圈
/Python主要使用for和while迴圈。Python的for迴圈較相似於Java的增強型for迴圈,通常用於重複數列集合。
比較
1.語法結構:C++和Java的for迴圈語法相似,都包含初始化、條件判斷和迭代三部分
vs.
Python使用for迴圈遍歷範圍或重複數列集合,語法更加簡潔。
2.靈活性:C++和Java提供了多種迴圈結構,包括for、while和do-while
vs.
Python沒有do-while迴圈,但其for迴圈結合range()函數已經非常強大。
3.易讀:Python的語法設計強調可讀性和簡潔性,for迴圈和while迴圈語法更直觀
vs.
C++及Java複雜排列
4.增強型for迴圈:
Java引入了增強型for迴圈,用於重複數列和集合(類似Python的for迴圈)
而C++在C++11中引入了範圍for迴圈(range-based for loop)與上兩種語法較相同
Java初階迴圈訓練
1. 基礎語法:
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
這段代碼從0輸出到9,for迴圈的基本結構包括初始化、條件判斷和迭代三個部分。這三部分分別由分號(;)分隔。
迴圈的可讀性:
• 命名變量:在for迴圈中,變量名稱應該具備意義。雖然i是常見的迴圈變量名,但在更複雜的迴圈中,使用更具描述性的名稱可以提高代碼的可讀性。
• 簡潔的條件和步驟:保持條件和步驟的簡潔性,避免過於複雜的表達式,這樣能讓迴圈的邏輯更清晰。
使用增強型for迴圈:
對於數組或集合,可以使用增強型for迴圈,這種語法更簡潔。
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}
5. 避免無限迴圈:
確保迴圈的終止條件能夠滿足,否則可能會導致無限迴圈,進而造成程式當機或卡死。
for (int i = 0; ; i++) {
System.out.println(i);
if (i == 100) break; // 添加條件以避免無限迴圈
}
6. 使用break和continue:
在某些情況下,break和continue語句能夠更靈活地控制迴圈的執行。
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue; // 跳過偶數
if (i == 7) break; // 遇到7時跳出迴圈
System.out.println(i);
}
接下來多一些複雜的迴圈練習!
1.雙重條件迴圈:
有時候我們需要在一個迴圈中處理多個條件,這時可以在條件部分使用邏輯運算符。
for (int i = 0, j = 10; i < 10 && j > 0; i++, j--) {
System.out.println("i: " + i + ", j: " + j);
}
2.反向迴圈:
有時我們需要反向遍歷數組或列表,這時可以使用反向迴圈。
int[] numbers = {1, 2, 3, 4, 5};
for (int i = numbers.length - 1; i >= 0; i--) {
System.out.println(numbers[i]);
}
3.跳過特定步驟:
使用continue語句可以跳過某些特定的迴圈步驟,如跳過某些不符合條件的元素。
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue; // 跳過偶數
System.out.println(i); // 只輸出奇數
}
4. 動態範圍的迴圈:
有時迴圈的範圍可能是動態的,可以根據情況進行調整。
int start = 5;
int end = 15;
for (int i = start; i < end; i++) {
System.out.println(i);
}
5.利用Lambda和Streams:
在Java 8引入的Lambda和Streams中,我們可以用更簡潔和函數式的方式來處理迴圈操作。
List numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream().filter(n -> n % 2 != 0).forEach(System.out::println);
這段代碼使用Stream API來過濾和輸出奇數,這種方式更加直觀和簡潔。
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
System.out.println("Sum: " + sum);
List list = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
list.add(i * i); // 添加1到10的平方數
}
list.forEach(System.out::println);
8.嵌套迴圈和矩陣操作:
在處理多維數組或矩陣時,嵌套for迴圈是必不可少的。
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
9.創建倒序數組:
使用for迴圈來創建一個倒序數組,可以提高理解迴圈的靈活性。
int n = 10;
int[] reverseArray = new int[n];
for (int i = 0; i < n; i++) {
reverseArray[i] = n - i;
}
System.out.println(Arrays.toString(reverseArray));
有了迴圈的幫助,可以避免人工計算大量繁瑣的數據排列,明天的分享加上一些視窗設計,讓關於迴圈的分享變得簡單有趣~