iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
佛心分享-SideProject30

從0開始—初階程式語言學習者的必經之路系列 第 2

數字排列有這麼複雜嗎?簡單迴圈介紹讓Java一目了然!

  • 分享至 

  • xImage
  •  

第一天說明簡單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迴圈的基本結構包括初始化、條件判斷和迭代三個部分。這三部分分別由分號(;)分隔。

  1. 迴圈的可讀性:
    • 命名變量:在for迴圈中,變量名稱應該具備意義。雖然i是常見的迴圈變量名,但在更複雜的迴圈中,使用更具描述性的名稱可以提高代碼的可讀性。
    • 簡潔的條件和步驟:保持條件和步驟的簡潔性,避免過於複雜的表達式,這樣能讓迴圈的邏輯更清晰。

  2. 使用增強型for迴圈:
    對於數組或集合,可以使用增強型for迴圈,這種語法更簡潔。

int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}

  1. 嵌套迴圈的謹慎使用:
    嵌套迴圈會增加代碼的複雜性和執行時間。在可能的情況下,需考慮優化或重構代碼以避免過多的嵌套。

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來過濾和輸出奇數,這種方式更加直觀和簡潔。

  1. 計算集合的總和:
    利用for迴圈來計算數組或集合的總和是一個常見的應用。

int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
System.out.println("Sum: " + sum);

  1. 動態生成數據:
    使用for迴圈可以動態生成數據,例如生成一組序列數。

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));

有了迴圈的幫助,可以避免人工計算大量繁瑣的數據排列,明天的分享加上一些視窗設計,讓關於迴圈的分享變得簡單有趣~


上一篇
Hello, World! 初學筆記心得
下一篇
DAY3 迴圈設計遊戲
系列文
從0開始—初階程式語言學習者的必經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言