首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 基礎入門第三天:運算符詳解與流程控制語句完全指南

     編輯:Java 綜合教學

Java 基礎入門第三天:運算符詳解與流程控制語句完全指南

一、運算符體系全覽

類別運算符關鍵點
算術+ - * / % ++ --整數相除得整數,*1.0 轉浮點;++/-- 前後綴區別
賦值= += -= *= /= %=擴展賦值隱含強轉:short s=1; s+=1 OK; s=s+1 編譯錯
關系== != > < >= <=結果均為 boolean;instanceof 也屬此類
邏輯& | ^ ! && ||&&/|| 短路;^ 異或:true^true=false
位運算& | ^ ~ << >> >>>直接操作二進制位;>>> 無符號右移補 0
三目? :條件?結果1:結果2;嵌套可實現多條件判斷

二、重點運算符深度解析

1. '+' 運算符多態行為

// 1. 加法: 數值運算
// 2. 正號: +5 (無實際作用)
// 3. 字符串連接: 任意類型 + String → String
System.out.println('a' + 1);           // 98 (char 'a'=97 提升為 int 相加)
System.out.println("hello" + 'a' + 1); // helloa1 (左到右連接)
System.out.println('a' + 1 + "hello"); // 98hello (先算 'a'+1=98 再連接)

2. 自增自減陷阱

int x = 4;
int y = (++x) + (++x) + (x * 10);
// 步驟: x=5 → x=6 → 6 + 6 + 60 = 72

3. 邏輯運算符短路特性

// &&: 左 false 右不執行 | &: 雙邊必執行
if (x > 0 && (++y > 0)) { ... } // x<=0 時 y 不增
if (x > 0 & (++y > 0)) { ... }  // 無論 x, y 必增

4. 位運算實戰技巧

  • 交換兩變量 (無需臨時變量):a ^= b; b ^= a; a ^= b;
  • 判斷奇偶:(n & 1) == 1
  • 乘除 2 的冪次:n << 1 (×2), n >> 1 (÷2)
  • 取模優化 (2 的冪次):n & (m-1) 等價 n % m
// 面試題:不借第三變量交換 a=10, b=20
a = a ^ b; b = a ^ b; a = a ^ b; // 利用 x^x=0, x^0=x
// 或算術法: a=a+b; b=a-b; a=a-b;
// 或一行: b = (a+b) - (a=b);

5. 三目運算符巧用

// 獲取三數最大值
int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
// 等價 if-else 但三目有返回值,可直接賦值

三、鍵盤輸入 Scanner

import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
double d = sc.nextDouble();
String s = sc.next();      // 讀單詞 (空格分隔)
String line = sc.nextLine(); // 讀整行

四、流程控制語句

1. 選擇結構

// if 單分支
if (score >= 60) System.out.println("及格");

// if-else 雙分支
if (score >= 60) System.out.println("及格"); else System.out.println("不及格");

// if-else if-else 多分支
if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'E';

// switch-case (JDK12+ 支持箭頭語法)
switch (day) {
    case 1,2,3,4,5 -> System.out.println("工作日");
    case 6,7 -> System.out.println("週末");
    default -> System.out.println("非法輸入");
}

注意:if 條件必須 boolean;大括號建議不省略;switch 穿透特性 (無 break 繼續執行下一 case)

2. 循環結構

// for 循環
for (int i = 0; i < 10; i++) { ... }

// while 循環
while (condition) { ... }

// do-while 至少執行一次
do { ... } while (condition);

// 增強 for (遍歷數組/集合)
for (int x : arr) { ... }

// 跳轉控制
break;      // 跳出最近循環
continue;   // 跳過本次迭代
return;     // 結束方法
// 標籤跳轉 (慎用)
outer: for (int i=0; i<3; i++) 
    for (int j=0; j<3; j++) 
        if (i==1 && j==1) break outer;

五、綜合練習題

  1. 輸出 1-100 能被 3 整除的數之和:for(int i=3,sum=0;i<=100;i+=3)sum+=i;
  2. 水仙花數 (三位數各位立方和等於自身):for(int i=100;i<1000;i++)if(i==cubeSum(i))print(i);
  3. 九九乘法表:雙層 for 循環,內層 j≤i
  4. 猜數字遊戲:Random + Scanner + while 循環 + break

算術運算符表 關系運算符表 邏輯運算符表 位運算符表 位移運算示例

運算符與流程控制是程序邏輯的骨架。精通優先級、短路、位運算技巧,靈活運用 if/switch/循環/跳轉,能寫出既高效又易讀的業務邏輯代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved