java初学小案例
- 案例1:
定义3个int类型变量并赋值,求出最小值,并打印输出到控制台。
int a = 5;
int b = 6;
int c = 4;
int max; //定义最大值
//a 与 b 比较,得出一个最大值赋值给max
if (a > b) {
max = a;
}else {
max = b;
}
//如果max 比 c 大,不执行下面这个if语句,否则 最大值是c
if (max < c) {
max = c;
}
System.out.println("最大值max = " + max);
/*
-----------------------------结果-----------------------------
最大值max = 6
*/
- 案例2:
考试分数线为23分(包含23)以上为通过,18-23分为待定,18分以下(不包含18)为不通过。
定义一个成绩,并使用if语句来判断该成绩是否通过,将结果打印到控制台,如: 成绩为25分,通过。
int num = 23; //定义考试分
if (num < 18) { //num = 23 < 18 false 不执行
System.out.println("不通过!");
} else if (num < 23) { //num = 23 < 23 false
System.out.println("特定!");
} else { // num = 23 default 其他条件未满足时,执行该语句
System.out.println("通过!");
}
/*
-----------------------------结果-----------------------------
通过!
*/
- 案例3:
通过键盘录入一个四位数,分别取出每一位上的数字,并按照一定格式打印输出。
如:"数字3251的个位是 1, 十位是 5, 百位是 2,千位是3。
//此为原始做法
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个四位数");
int num = scanner.nextInt(); //等待键盘录入
int g = num % 1000 % 100 % 10;//获取个位数
int s = num % 1000 % 100 / 10;//获取十位数
int b = num % 1000 / 100; //获取百位数
int q = num / 1000; //获取千位数
System.out.println("g = " + g);
System.out.println("s = " + s);
System.out.println("b = " + b);
System.out.println("q = " + q);
//代码提升
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个四位数");
int num = scanner.nextInt();
int value = 10; //倍数
int g = num % value;
int s = num /10 % value;
int b = num / 100 % value;
int q = num / 1000 % value;
System.out.println("g = " + g);
System.out.println("s = " + s);
System.out.println("b = " + b);
System.out.println("q = " + q);
/*
-----------------------------结果-----------------------------
请输入一个四位数
2348
g = 8
s = 4
b = 3
q = 2
*/
//知识总结
/*
提示:
1234 ( /1 )%10=4
1234 ( /10 ) %10=3
1234 ( /10/10 ) %10=2
1234 ( /10/10/10 ) %10=1
int g = num % 10; // 个 就除以 1 %10
int s = num /10 % 10; // 十 就除以 10 %10
int b = num / 100 % 10; // 百 就除以 100 %10
int q = num / 1000 % 10; // 千 就除以 1000 %10
...
*/
- 案例4:
模拟遥控器调整音量。定义一个音量,
(1)如果值为1,那么打印输出“音量增大”;
(2)如果值为2,那么打印输出“音量减小”;
(3)如果值为3,那么打印输出“关机”;
(4)若值为其他数字 ,打印“抱歉,您给出的数字不合法”。(switch语句)。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int voice = scanner.nextInt();
switch (voice) {
case 1: //当voice == 1 执行
System.out.println("音量增大");
break; //注意break; 该加时要加上,防止case穿透
case 2: //当voice == 2 执行
System.out.println("音量减小");
break;
case 3: //当voice == 3 执行
System.out.println("关机");
break;
default: {//当voice 不等于上述条件 执行
System.out.println("抱歉,您给出的数字不合法");
break;
}
}
/*
-----------------------------结果-----------------------------
请输入一个整数:
5
抱歉,您给出的数字不合法
*/
- 案例5:
(1)将1到100之间不能被3整除的数字累加求和并打印结果。
(2)求出1到5之间所有整数之和并打印结果。
(3)求出1到5之间所有奇数之和并打印结果。
(4)求出1到5之间所有偶数的个数并打印结果。
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int count = 0;
for (int i = 1; i < 100; i++) { //循环 1-100之间的数
if (i % 3 != 0) { //不能被3整除的数字
sum1 += i; //求和
}
if (i <= 5) { //1到5之间所有整数
sum2 += i; //求和
if (i % 2 != 0) {1到5之间所有奇数
sum3 += i; //求和
} else {
count++; //1到5之间所有偶数的个数
}
}
}
System.out.println("1到100之间不能被3整除的数字累加求和 = " + sum1);
System.out.println("1到5之间所有整数之和 = " + sum2);
System.out.println("求出1到5之间所有奇数之和 = " + sum3);
System.out.println("求出1到5之间所有偶数的个数 = " + count);
/*
-----------------------------结果-----------------------------
1到100之间不能被3整除的数字累加求和 = 3267
1到5之间所有整数之和 = 15
求出1到5之间所有奇数之和 = 9
求出1到5之间所有偶数的个数 = 2
*/
- 案例6:
求1~100以内(包含1和100)能同时被3,5整除的数的和,并将求出的和打印到控制台上。
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
//System.out.print(i + "\t");
sum += i;`在这里插入代码片`
}
}
System.out.println("1~100以内(包含1和100)能同时被3,5整除的数的和" + sum);
/*
-----------------------------结果-----------------------------
1~100以内(包含1和100)能同时被3,5整除的数的和315
*/
- 案例7:
统计并获取10-100之间(包含10和100)个位与十位都为奇数的数字,并将数字和个数都打印到控制台上。
int g = 0;
int s = 0;
int count = 0;
for (int i = 10; i <= 100; i++) { //10-100之间
g = i % 10; //个位数
s = i / 10; //十位数
if (g % 2 != 0 && s % 2 != 0) { //个位与十位都为奇数的数字
count++; //条件成立,次数 + 1
System.out.println("数字 = " + i);
}
}
System.out.println("count = " + count);
/*
-----------------------------结果-----------------------------
数字 = 11
数字 = 13
数字 = 15
数字 = 17
数字 = 19
数字 = 31
数字 = 33
.......
count = 25
*/
- 案例8:
获取一个1-500之间(包含1和500)的随机数n,求0-n之间(包含0和n)的偶数和,并打印到控制台上。
int sum = 0;
Random random = new Random();
int n = random.nextInt(500 - 1 + 1) + 1;
for (int i = 0; i <= n; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("sum = " + sum);
/*
-----------------------------结果-----------------------------
sum = 9900
*/
//小知识
/*
求随机数 n - m 之间的数 ,包括n,m
int n = 10;
int m = 50;
//求 10-50 之间的书=数(包括10,50)
random.nextInt(m - n + 1) + n;//(一定是最大的数 - 最小的数) 返回值 [10,51)之间
*/
- 案例9:
获取一个1-500之间(包含1和500)的随机数n,求0-n之间(包含0和n)的偶数和,并打印到控制台上。
Random random = new Random();
int sum = 0;
int n = random.nextInt(500 - 1 + 1) + 1;
for (int i = 0; i <= n; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("sum = " + sum);
//ps : 对于随机数取值不明白,可以看 案例8 总结
/*
-----------------------------结果-----------------------------
sum = 4692
*/
- 案例10:
定义一个长度为5的int类型数组,并使用随机数(1-100之间)为数组元素赋值
(1) 打印输出数组的长度
(2) 遍历输出每个元素
(3) 求出元素值为偶数的个数。
(4) 求出元素值为奇数的元素之和。
Random random = new Random();
int[] arr = new int[5]; //创建数组
int count = 0; //偶数个数
int sum = 0; //奇数和
for (int i = 0; i < arr.length; i++) {
arr[i] = random.nextInt(100 - 1 + 1) + 1; //获取随机数(1-100之间)
System.out.print("arr[" + (i + 1) +"] = " + arr[i] + "\t");
if (arr[i] %2 == 0) { //是否为偶数
count++; //条件成立 次数 + 1
} else {
sum += arr[i]; //奇数和
}
}
System.out.println("\n数组的长度 = " + arr.length);
System.out.println("元素值为偶数的个数 = " + count);
System.out.println("元素值为奇数的元素之和 = " + sum);
/*
-----------------------------结果随机-----------------------------
arr[1] = 93 arr[2] = 28 arr[3] = 84 arr[4] = 67 arr[5] = 67
数组的长度 = 5
元素值为偶数的个数 = 2
元素值为奇数的元素之和 = 227
*/
- 案例11:
(1) 定义一个长度为10的int类型数组arr,随机数为数组循环赋值,随机数范围为10-99(包含10和99)
(2) 提示用户键盘录入一个1-5之间(包含1和5,无需用代码判断,提示语即可)的整数num
(3) 遍历arr,如果元素的十位或者个位数字是num的倍数(0视为任意数字的倍数),则输出该元素。
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int[] arr = new int[10];
int g = 0;
int s = 0;
System.out.print("随机生成的数组中的元素为:\n");
for (int i = 0; i < arr.length; i++) {
arr[i] = random.nextInt(99 - 10 + 1) + 10; // 随机数 10-99(包含10和99)
System.out.print(arr[i] + "\t");
}
System.out.println("\n请输入 1 个 1-5之间的数字");
int num = scanner.nextInt(); //控制台输入
System.out.println("符合条件的元素为");
for (int i = 0; i < arr.length; i++) {
g = arr[i] % 10; // 个位 = 随机数 % 10
s = arr[i] / 10; // 十位 = 随机数 / 10
if (g % num == 0 || s % num == 0 || g == 0 || s == 0) { //十位或者个位数字是num的倍数
System.out.print(arr[i] + "\t");//条件成立输出该元素
}
}
/*
-----------------------------结果随机-----------------------------
随机生成的数组中的元素为:
85 24 55 24 11 69 92 37 23 94
请输入 1 个 1-5之间的数字
2
符合条件的元素为
85 24 24 69 92 23 94
*/
- 案例12:
(1) 定义一个长度为5的int型数组arr,提示用户输入5个1-60之间的数字作为数组元素
(2) 生成2-10(范围包含2和10)之间的随机数num
(3) 遍历数组arr,筛选出数组中不是num倍数的元素并输出。
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" +(i + 1)+ "个 1-60之间的数字");
arr[i] = scanner.nextInt();//控制台输入
}
int randomNum = random.nextInt(10 - 2 + 1) + 2;//随机数 2-10(范围包含2和10)
System.out.println("生成的随机数为: " + randomNum);
System.out.println("符合条件的元素为: ");
for (int i = 0; i < arr.length; i++) {
if (arr[i] % randomNum != 0) { //判断不是num倍数的元素
System.out.print(arr[i] + "\t"); //条件成立输出元素
}
}
/*
-----------------------------结果随机-----------------------------
请输入第1个 1-60之间的数字
53
请输入第2个 1-60之间的数字
24
请输入第3个 1-60之间的数字
33
请输入第4个 1-60之间的数字
45
请输入第5个 1-60之间的数字
10
生成的随机数为: 4
符合条件的元素为:
53 33 45 10
*/