1. 分支結構
① if 語句:
(1) 雙分支:
if (條件) {// 語句體1
} else {// 語句體2
}
(2) 多分支
if (條件1) {// 語句體1
} else if (條件2) {// 語句體2
} else {// 語句體N
}
② switch 語句:
(1) 語法:如果都不是(default),就推薦招牌
switch (變量) {case 值1:// 語句1;break;case 值2:// 語句2;break;...default:// 默認語句;break;
}
(2) 注意:
- 表達式:(將要匹配的值)取值為byte、short、int、char
- case:后面跟的是要和表達式進行比較的值
- break:跳出循環,不能缺省,否則會造成 case 穿透
- default:都不匹配時執行該處內容
- case 后面的值只能是字面量,不能是變量
- case 后面的值不能重復
2. 循環結構
① 跳轉控制語句
(1)break 語句
- 作用:終止當前?
for
、while
、do...while
?語句,跳出循環。 - 示例
for (int i = 1; i <= 5; i++) {System.out.println("i = " + i);if (i == 3) {break;}
}
// 輸出:1, 2
(2)continue 語句
- 作用:跳過本次循環,繼續下一次循環。
- 示例
for (int i = 1; i <= 5; i++) {if (i == 3) {continue;}System.out.println("i = " + i);
}
// 輸出:1, 2, 4, 5
② 循環高級綜合練習:
(1) 回文數:
請編寫一個 Java 程序,實現判斷一個整數是否為回文數的功能。回文數是指從左向右讀和從右向左讀都一樣的整數(例如 12321)。要求程序通過反轉整數的數字后與原數比較,來判斷該整數是否為回文數,并輸出反轉后的數字以及判斷結果(true 表示是回文數,false 表示不是)。(第二天記得寫一下)
public class test15 {public static void main(String[] args) {// 定義要判斷的整數(此處以12321為例,這是一個回文數)int x = 12321;// 保存原數到temp變量(因為后續x的值會被修改)int temp = x;// 定義num變量,用于存儲反轉后的數字,初始值為0int num = 0;// 循環提取x的每一位數字,直到x變為0(所有位都被提取完畢)while (x != 0) {// 取x的最后一位數字(通過對10取余實現)// 例如x=12321時,12321%10=1int ge = x % 10;// 去掉x的最后一位數字(通過除以10實現,整數除法會自動舍去小數部分)// 例如x=12321時,12321/10=1232x = x / 10;// 將提取的末位數字拼接到num的末尾// 例如第一次循環:num=0*10+1=1// 第二次循環:num=1*10+2=12(此時x已變為1232,提取的是2)num = num * 10 + ge;}// 輸出反轉后的數字(對于12321,反轉后還是12321)System.out.println(num);// 比較反轉后的數字與原數是否相等,相等則為回文數(輸出true)System.out.println(num == temp);}
}
num = num * 10 + ge:
num * 10
:給當前結果 “騰出最后一位”(比如 3 變成 30,留出位置給下一個數字)。+ ge
:把新取的末尾數字(ge
)放到騰出的位置上(比如 30 + 2 = 32)。
(2) 求平方根
接收用戶輸入的一個整數,通過程序計算并輸出該整數的平方根。具體要求如下:
- 程序需要提示用戶輸入一個整數
- 使用循環從 2 開始依次判斷,找到該整數的平方根
- 如果該整數是完全平方數(即平方根為整數),則輸出 "x 就是 y 的平方根"(其中 x 是平方根,y 是輸入的整數)
- 如果該整數不是完全平方數,則輸出其整數部分的平方根,格式同樣為 "x 就是 y 的平方根"(例如輸入 10 時,輸出 3 就是 10 的平方根)
(第二天記得寫一下)
public class test16 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入一個整數");int number = sc.nextInt();for (int i = 2; i <= number; i++) {if (i * i == number) {System.out.println(i + "就是" + number + "的平方根");break;} else if (i * i > number) {System.out.println((i - 1) + "就是" + number + "的平方根");break;}}}
}
(3) 判斷輸入整數是否為質數(第二天記得寫一下)
public class test17 {public static void main(String[] args) {boolean flag = true;Scanner sc = new Scanner(System.in);System.out.println("請輸入一個整數");int number = sc.nextInt();for (int i = 2; i <= number - 1; i++){if (number % i == 0){flag = false;break;}}if (flag){System.out.println(number + "是質數");} else{System.out.println(number + "不是質數");}}
}
- 當?
i
?循環到?number
?本身時,number % i
?一定等于 0(任何數都能被自己整除) boolean flag = true
:用一個標記變量默認標記為 “是質數”
(4) Random:產生一個隨機數
使用步驟:
(1)導包:import java.util.Random;
(2)創建對象:Random r = new Random();
(3)獲取隨機數:int number = r.nextInt(10); //獲取數據的范圍:[0,10],包括0,不包括10