案例1:减肥计划
需求:输入星期数,显示今天的减肥活动
周一:跑步;
周二:游泳;
周三:慢走;
周四:动感单车;
周五:拳击;
周六:爬山;
周日:好好吃一顿。
import java.util.Scanner; //导包
public class First {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //用一个变量接收录入的星期数
System.out.println("请输入星期数:");
int week = sc.nextInt(); //接收数据
switch (week){
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;
default:
System.out.println("输入有误!!!");
}
}
}
案例2:逢七过
需求:包含7或7的倍数,喊过,打印出1-100之间满足的数。
//个位是7;十位是7;7的倍数
for(int i = 1;i<=100;i++){
if(i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0){
System.out.println(i);
}
}
案例3:不死神兔
需求:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,问第二十个月的兔子对数为多少? (斐波那契数列)
//为存储多个月的兔子数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20
int[] arr = new int[20];
arr [0] = 1; //前两个月兔子对数已知
arr [1] = 1;
//用循环实现计算每个月兔子的对数,从第三个月开始
for(int i = 2;i < arr.length;i++){
arr[i] = arr[i-2] + arr[i-1];
}
System.out.println("第二十个月兔子的对数是:" + arr[19]);
案例4:百钱白鸡
需求:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问各几何?
//设公鸡x 母鸡y 小鸡z
for (int x = 0;x <= 20;x++){
for(int y = 0;y <= 33;y++){
for(int z = 0;z <= 100;z++){
if(x + y + z == 100 && 5*x + 3*y + z/3 == 100 && z%3 == 0){
System.out.println("公鸡:" + x + " 母鸡:"+ y + " 小鸡:" + z);
}
}
}
}
案例5:数组元素求和。
需求:有一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,要求是:求和的元素个位和十位都不能是7,并且只能是偶数。
int arr [] = {68,27,95,88,171,996,51,210};
int sum = 0;
//遍历数组
for(int i = 0;i < arr.length;i++){
if(arr[i] % 10 != 7 && arr[i] / 10 % 10 != 7 && arr[i] % 2 == 0){
sum += arr[i];
}
}
System.out.println(sum);
案例6:数组内容相同
需求:设计一个方法,用于比较两个数组的内容是否相同。
public static void main(String[] args) {
int[] arr = {11,2,5,6,8};
int[] arr2 = {11,2,5,6,8};
//调用方法
boolean flag = compare(arr,arr2);
System.out.println(flag);
}
//定义一个方法,用于比较两个数组是否相等
/*
两个明确:返回值类型:boolean
参数 int[] arr int[] arr2
*/
public static boolean compare(int[] arr,int[] arr2){
//先比较数组长度是否相等
if(arr.length != arr2.length){
return false;
}
//遍历数组,比较数组中的每一个元素
for (int i = 0;i < arr.length;i++){
if(arr[i] != arr2[i]){
return false;
}
}
return true;
}
案例7:查找
需求:已知一个数组arr = {19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值。
import java.util.Scanner; //导包
public class First {
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的数据:");
int number = sc.nextInt();
int index = -1; //定义一个索引变量,初始值为-1
//遍历数组,获取数组中的每个元素
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
index = i;
break;
}
}
System.out.println("index:" + index);
}
}
用方法:
import java.util.Scanner; //导包
public class First {
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的数据:");
int number = sc.nextInt();
int index = getIndex(arr,number); //调用方法
System.out.println("index:" + index);
}
public static int getIndex(int[ ] arr,int number){
int index = -1; //定义一个索引变量,初始值为-1
//遍历数组,获取数组中的每个元素
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
index = i;
break;
}
}
return index;
}
}
案例8:反转
需求:已知一个数组arr = {19,28,37,46,50};用程序实现把数组中的元素值交换,交换后的数组arr = {50,46,37,28,19};并在控制台输出交换后的数组元素。
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
//循环遍历数组
for(int start = 0,end = arr.length - 1;start <= end;start++,end--){
//交换变量
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
printArray(arr);
}
//定义一个方法,实现数组遍历
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0;i < arr.length;i++){
if(i == arr.length - 1){
System.out.print(arr[i]);
}else {
System.out.print(arr[i] + ", ");
}
}
System.out.println("]");
}
案例6:评委打分
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
import java.util.Scanner; //导包
public class First {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
//利用循环输出提示
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第" + (i+1) + "个评委的打分:");
arr[i] = sc.nextInt();
}
//调用方法
printArray(arr);
int max = getMax(arr);
int min = getMin(arr);
int sum = getSum(arr);
//计算平均分
int avg = (sum - min - max) / (arr.length - 2);
System.out.println("选手最终得分是:" + avg);
}
//定义一个方法,实现数组遍历
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0;i < arr.length;i++){
if(i == arr.length - 1){
System.out.print(arr[i]);
}else {
System.out.print(arr[i] + ", ");
}
}
System.out.println("]");
}
//定义一个方法,实现获取最大值
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 1;i < arr.length;i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
//定义一个方法,获取最小值
public static int getMin(int[] arr){
int min = arr[0];
for(int i = 1;i < arr.length;i++){
if(arr[i] > min){
min = arr[i];
}
}
return min;
}
//定义一个方法,求和
public static int getSum(int[] arr){
int sum = 0;
for (int i = 0;i < arr.length;i++){
sum += arr[i];
}
return sum;
}
}