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