本文共 7618 字,大约阅读时间需要 25 分钟。
1.1 循环,if和switch练习
1.1.1 键盘录入月份,输出对应的季节(if…else或switch实现)1.1.1.1 案例代码六:package com.itheima;import java.util.Scanner;/* * 需求:键盘录入一个月份,输出该月份对应的季节。 * 一年有四季 * 3,4,5 春季 * 6,7,8 夏季 * 9,10,11 秋季 * 12,1,2 冬季 * * 分析: * A:键盘录入一个月份,用Scanner实现 * B:判断该月份是几月,根据月份输出对应的季节 * if * switch */public class Test {public static void main(String[] args) {// 键盘录入一个月份,用Scanner实现Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入一个月份(1-12):");int month = sc.nextInt();// 判断该月份是几月,根据月份输出对应的季节/*if (month == 1) {System.out.println("冬季");} else if (month == 2) {System.out.println("冬季");} else if (month == 3) {System.out.println("春季");} else if (month == 4) {System.out.println("春季");} else if (month == 5) {System.out.println("春季");} else if (month == 6) {System.out.println("夏季");} else if (month == 7) {System.out.println("夏季");} else if (month == 8) {System.out.println("夏季");} else if (month == 9) {System.out.println("秋季");} else if (month == 10) {System.out.println("秋季");} else if (month == 11) {System.out.println("秋季");} else if (month == 12) {System.out.println("冬季");} else {System.out.println("你输入的月份有误");}*///代码太长了,能不能简单一些呢?//能,如何简单一些呢?//我们可以把相同季节的月份放到一起来判断//(month==3 || month==4 || month==5)if(month==1 || month==2 || month==12) {System.out.println("冬季");}else if(month==3 || month==4 || month==5) {System.out.println("春季");}else if(month==6 || month==7|| month==8) {System.out.println("夏季");}else if(month==9 || month==10 || month==11) {System.out.println("秋季");}else {System.out.println("你输入的月份有误");}}}
1.1.1.2 案例代码七:
package com.itheima;import java.util.Scanner;/* * 需求:键盘录入一个月份,输出该月份对应的季节。 * 一年有四季 * 3,4,5 春季 * 6,7,8 夏季 * 9,10,11 秋季 * 12,1,2 冬季 * * 分析: * A:键盘录入一个月份,用Scanner实现 * B:判断该月份是几月,根据月份输出对应的季节 * if * switch * * case穿透。 */public class Test2 {public static void main(String[] args) {// 键盘录入一个月份,用Scanner实现Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入月份(1-12):");int month = sc.nextInt();// 用switch语句实现/*switch (month) {case 1:System.out.println("冬季");break;case 2:System.out.println("冬季");break;case 3:System.out.println("春季");break;case 4:System.out.println("春季");break;case 5:System.out.println("春季");break;case 6:System.out.println("夏季");break;case 7:System.out.println("夏季");break;case 8:System.out.println("夏季");break;case 9:System.out.println("秋季");break;case 10:System.out.println("秋季");break;case 11:System.out.println("秋季");break;case 12:System.out.println("冬季");break;default:System.out.println("你输入的月份有误");break;}*///case 穿透/*switch(month) {case 1:System.out.println("hello");//break;case 2:System.out.println("world");break;default:System.out.println("over");break;}*///通过case穿透现象改进代码switch(month) {case 1:case 2:case 12:System.out.println("冬季");break;case 3:case 4:case 5:System.out.println("春季");break;case 6:case 7:case 8:System.out.println("夏季");break;case 9:case 10:case 11:System.out.println("秋季");break;default:System.out.println("你输入的月份有误");break;}}}
1.1.2 打印5位数中所有的回文数
1.1.2.1 案例代码八:package com.itheima;/* * 需求:打印5位数中的所有回文数。 * 什么是回文数呢?举例:12321是回文数,个位与万位相同,十位与千位相同。 * * 分析: * A:5位数告诉了我们数据的范围,用for循环实现 * B:获取每一个5位数,然后得到它的个位,十位,千位,万位 * 假设x是一个5位数: * 个位:x%10 * 十位:x/10%10 * 千位:x/10/10/10%10 * 万位:x/10/10/10/10%10 * C:把满足条件的数据输出即可 */public class Test3 {public static void main(String[] args) {//5位数告诉了我们数据的范围,用for循环实现for(int x=10000; x<100000; x++) {//获取每一个5位数,然后得到它的个位,十位,千位,万位int ge = x%10;int shi = x/10%10;int qian = x/10/10/10%10;int wan = x/10/10/10/10%10;//把满足条件的数据输出即可if((ge==wan) && (shi==qian)) {System.out.println(x);}}}}
1.2 数组练习
1.2.1 不死神兔问题1.2.1.1 案例代码九package com.itheima;/* * 需求: * 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问第二十个月的兔子对数为多少? * * 规律: * 第一个月:1 * 第二个月:1 * 第三个月:2 * 第四个月:3 * 第五个月:5 * ... * * 规律:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和。 * 第一个月和第二个月的兔子对数是1 * 分析: * int[] arr = new int[20]; * * arr[0] = 1; * arr[1] = 1; * * arr[2] = arr[0] + arr[1]; * arr[3] = arr[1] + arr[2]; * arr[4] = arr[2] + arr[3]; * ... */public class Test4 {public static void main(String[] args) {//定义数组int[] arr = new int[20];//初始化第一个月和第二个月的兔子对数carr[0] = 1;arr[1] = 1;for(int x=2; x
1.2.2 求数组中满足要求的元素和
1.2.2.1 案例代码十:package com.itheima;/* * 需求: * (1)定义一个int类型的一维数组,内容为{171,72,19,16,118,51,210,7,18} * (2)求出该数组中满足要求的元素和。 * 要求:求和的元素的个位和十位不能包含7,并且只能为偶数。 * * 分析: * A:定义一个int类型的一维数组 * B:定义一个求和变量 * C:遍历数组,获取到数组中的每一个元素 * D:判断该元素是否满足如下要求,如果是就累加,否则,不搭理它 * x%2==0 * x%10 != 7 * x/10%10 !=7 * E:输出结果 */public class Test5 {public static void main(String[] args) {//定义一个int类型的一维数组int[] arr = {171,72,19,16,118,51,210,7,18};//定义一个求和变量int sum = 0;//遍历数组,获取到数组中的每一个元素for(int x=0; x
1.2.3 裁判评分1.2.3.1
案例代码十一:package com.itheima;import java.util.Scanner;/* * 需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 * 选手的最后得分为:去掉一个最高分和一个最低分后 其余4个选手的平均值。 * 请写代码实现。(不考虑小数部分) * * 分析: * A:定义一个长度为6的数组。 * B:通过键盘录入的方式给出评委的分数 * C:写方法实现获取数组中的最大值,最小值 * D:写方法实现数组元素的求和 * E:平均分: (和-最高分-最低分)/(arr.length-2) * F:输出分数即可 */public class Test6 {public static void main(String[] args) {//定义一个长度为6的数组int[] arr = new int[6];//通过键盘录入的方式给出评委的分数Scanner sc = new Scanner(System.in);for(int x=0; xmax) {max = arr[x];}}return max;}}
1.2.4 数组反转
1.2.4.1 案例代码十二:package com.itheima;import java.util.Scanner;/* * 需求: * (1)键盘录入5个int类型的数据存储数组arr中 * (2)定义方法将arr数组中的内容反转 * (3)定义方法对反转后的数组进行遍历 * * 分析: * A:定义一个长度为5的数组 * B:通过键盘录入数据给数组中的元素赋值 * C:定义方法将arr数组中的内容反转 * 什么是反转?如何反转? * D:定义方法遍历数组 */public class Test7 {public static void main(String[] args) {// 定义一个长度为5的数组int[] arr = new int[5];// 通过键盘录入数据给数组中的元素赋值Scanner sc = new Scanner(System.in);for (int x = 0; x < arr.length; x++) {System.out.println("请给出第" + (x + 1) + "个元素");arr[x] = sc.nextInt();}System.out.println("反转前的数组元素:");printArray(arr);// 定义方法将arr数组中的内容反转reverse(arr);System.out.println("反转后的数组元素:");//定义方法遍历数组printArray(arr);}//遍历数组public static void printArray(int[] arr) {System.out.print("[");for(int x=0;x
1.2.5 数组基本查找
1.2.5.1 案例代码十三:package com.itheima;import java.util.Scanner;/* *需求:数组元素查找(查找指定元素第一次在数组中出现的索引) *(1)给定数组int[] arr = {5,7,3,2,5}; *(2)要查询的元素通过键盘录入的方式确定 *(3)定义一个查找数组元素第一次出现位置的方法(注,要查找的元素就是键盘录入的数据) * *分析: * A:给定数组int[] arr = {5,7,3,2,5}; * B:要查询的元素通过键盘录入的方式确定 * C:定义一个查找数组元素第一次出现位置的方法 * 遍历数组,获取到每一个元素,进行比较,如果想等,就直接把该处的索引返回。 * D:调用方法,输出结果 */public class Test8 {public static void main(String[] args) {// 给定数组int[] arr = {5,7,3,2,5};int[] arr = { 5, 7, 3, 2, 5 };//要查询的元素通过键盘录入的方式确定Scanner sc = new Scanner(System.in);System.out.println("请输入要查找的元素:");int number = sc.nextInt();//定义一个查找数组元素第一次出现位置的方法//调用方法int index =getIndex(arr, number);System.out.println("index:"+index);}/* * 两个明确: * 返回值类型:int * 参数列表:int[] arr,int value */public static int getIndex(int[] arr,int value) {//遍历数组,获取到每一个元素,进行比较,如果想等,就直接把该处的索引返回。/*for(int x=0; x
1.2.6 数据加密
1.2.6.1 案例代码十四:package com.itheima;import java.util.Scanner;/* * 需求:键盘录入数据,要求数据是四位的整数,现需要对数据进行加密,加密规则如下: * 每位数字都加上5,然后除以10的余数代替该数字, * 再将第一位和第四位交换,第二位和第三位交换, * 请把加密后的数据输出到控制台 * * 分析: * A:键盘录入一个四位数 * B:对数据进行加密 * 举例: * 4567 * 把这个四位数分成个,十,百,千存储到数组中 * int[] arr = {4,5,6,7}; * 每位数字都加上5: * arr[x] += 5; {9,10,11,12} * 然后除以10的余数代替该数字: * arr[x] %= 10; {9,0,1,2} * 再将第一位和第四位交换,第二位和第三位交换: * {9,0,1,2} {2,1,0,9} * C:输出加密后的数据 */public class Test9 {public static void main(String[] args) {//键盘录入一个四位数Scanner sc = new Scanner(System.in);//接收数据System.out.println("请输入一个四位数:");int number = sc.nextInt();//分别得到该数据的每一个位上的数据int ge = number%10;int shi = number/10%10;int bai = number/10/10%10;int qian = number/10/10/10%10;//定义一个数组int[] arr = new int[4];arr[0] = qian;arr[1] = bai;arr[2] = shi;arr[3] = ge;//加密规则//每位数字都加上5,然后除以10的余数代替该数字for(int x=0; x
转载于:https://blog.51cto.com/13587708/2082949