iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
自我挑戰組

自學 Java 挑戰:語法、物件導向到專題應用系列 第 5

D05-打好程式基本功:5 個範例掌握變數、資料型態與運算子

  • 分享至 

  • xImage
  •  

在前幾篇文章中,我們已經認識了 變數、資料型態 與 運算子 的基本概念。不過光有觀念還不夠,程式設計最重要的還是實作!
因此在這一篇,我準備了 五個小範例,帶你實際看看這些知識如何在程式中運作。這些範例從簡單的數學計算、字元與布林的使用,到型別轉換、字串操作與註解規則,都是你在寫 Java 程式時一定會遇到的基礎功。
希望透過這些例子,能幫助你更快掌握程式世界的「小細節」,並在未來面對更複雜的主題時更加得心應手。

範例 1:BMI 計算(double、Math.pow、運算子優先序)

程式碼重點:
double 適合小數運算;height*height 與 Math.pow(height, 2) 等價。

直接 System.out.println(bmi) 會輸出完整 double 字面值;若要小數點位數,建議 System.out.printf("%.2f%n", bmi);。​

package codegym;

public class TestDemo {
	public static void main(String args[]){
		double weight = 75.1;
		double height = 1.8;
		
//		double bmi = weight/(height*height);
		double bmi = weight/Math.pow(height, 2);
* 		
		System.out.println(bmi);
	}
}

輸出結果:

243798.8839985147

範例 2:字元/布林(char、boolean、ASCII/Unicode)本資料型態 (char / boolean)
這個範例示範了 字元 (char) 與 布林值 (boolean) 的使用。

程式碼重點(A)

  • char a = 'a'; 會印 a。
  • boolean b = true; 會印`` true。
  • char c = 65; 會依 Unicode code point 65 輸出 A。
package codegym;

public class TestDemo {

	public static void main(String[] args) {
		char a = 'a';
		boolean b = true;
		char c = 65;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}

}

輸出結果:

true
A

範例 3:型別轉換、包裝類別、裝箱/拆箱、常見陷阱

程式碼重點:

  • Cast:int → long 是擴大轉型,不必強制轉型,寫 long l = i; 即可。
  • 編譯器預設型別:整數常值預設為 int,超過 int 範圍要加 L(2147483648L);浮點常值預設為 double,要指定 float 則加 f(3.14f)。
  • 包裝類別:Double.SIZE 是 bit 數(64)。d.intValue() 會截去小數(3.14 → 3)。
  • 裝箱/拆箱:
    • Double d4 = d3; 是自動裝箱。
    • double d6 = d5; 是自動拆箱。
    • 地雷:對 null 進行自動拆箱會丟 NullPointerException(Double d7 = null; double d8 = d7;)。
    • 字串與基本型別轉換:Double.parseDouble(s)、String.valueOf(d9)。

這個原始程式會在 double d8 = d7; 當掉,後面幾行不會執行。若要完整跑完,請把「Autoboxing Error」段落註解或改用 Optional/判空。

輸出結果:

l:10
ll:2147483648
f:3.14
Double size:64
Double int value:3
d2:3.14
d4:3.143.14
Exception in thread "main" java.lang.NullPointerException
    at codegym.TestDemo.main(TestDemo.java:??)

範例 4:字串相加與運算子(String 的「+」為串接)
程式碼重點:

  • str += 42; 等同 str = str + String.valueOf(42);。
  • 一旦運算鏈上出現 String,之後的 + 皆為字串串接(不是數學加法)。
package codegym;

public class TestDemo {
	public static void main(String args[]){
		String str = "420";
		str += 42;
		
		System.out.println(str);
	}
}

輸出結果:

42042

範例 5:註解種類(單行、多行、文件註解)與基本輸出

程式碼重點:

  • System.out.println("Hello World");:基本輸出。
  • 三種註解:
    • 單行:// ...
    • 多行:/* ... */
    • 文件註解(常搭配 Javadoc):/** ... */
package codegym;

public class TestDemo {

	public static void main(String[] args) {
		
		System.out.println("Hello World");
		
		/**
		 * First
		 * Second
		 */
		
		// TestDemo
		
		/* TestDemo */

	}

}

輸出結果:

Hello World

結語:
透過這五個範例,我們複習並實際操作了 變數宣告、資料型態、型別轉換、包裝類別、字串串接以及註解 等核心觀念。這些看似基礎的內容,其實是後續學習流程控制、物件導向與資料結構的重要基石。

在程式學習中,最容易被忽略的就是「多嘗試、多印出、多觀察」,例如:嘗試不同型別相加、觀察輸出結果;或刻意製造錯誤,理解編譯器或 JVM 的提示。這些實作經驗會讓你在進入更進階的主題時更有底氣。

預告 D06:

接下來的 D06,我們將進入 Java 陣列 (Array) 的世界,並學會如何查閱 Java API 文件。同時也會帶你操作一些常見的 字串處理方法(像是長度、子字串、大小寫轉換、比對等),這些都是日常程式開發不可或缺的工具。

👉 第六篇主題:D06—Java 陣列 + 閱讀 Java API 文件 & 基本字串操作介紹


上一篇
Day04-程式世界的基石 - 變數、資料型態與運算子
系列文
自學 Java 挑戰:語法、物件導向到專題應用5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言