案例
1.案例1:减肥计划
需求:输入星期数,显示今天的减肥活动
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
package com.szy001;
import java.util.Scanner;//导包
public class WeightPlan {
public static void main(String[] args) {
//创建对象
Scanner sc=new Scanner(System.in);
//接收数据
while(true){
System.out.println("请输入星期数");
int week=sc.nextInt();
if(week>=1&&week<=7) {
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;
}
}
break;
}else {
System.out.println("输入错误,无此星期数!");
}
}
}
}
2.案例2:逢七过
需求:朋友聚会的时候可能会玩一个游戏:逢七过。规则是:从任意一个数字开始报数,当你报的数字包含7或者是7的倍数时都要说:过。为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印输出1-100之间的满足逢七过规则的数据。这样,大家将来在玩这个游戏的时候,就知道那些数据要说:过。
package com.szy001;
public class MeetSevenPass {
public static void main(String[] args) {
for(int i=1;i<=100;i++){
if(i%7==0||i%10==7||i/10==7){
System.out.println(i);
}
}
}
}
3.案例3:不死神兔
需求:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,加入兔子都不死,问第二十个月兔子对数为多少?
提示:找规律……
package com.szy001;
public class Rabbit {
public static void main(String[] args){
int[] arr=new int[20];
for(int i=0;i<20;i++){
if(i==0||i==1){
arr[i]=1;
}else{
arr[i]=arr[i-1]+arr[i-2];
}
}
System.out.println("第二十月兔子总数是:"+arr[19]);
}
}
4.案例4:百钱百鸡
需求:我国古代数学家张邱建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
package com.szy001;
public class Chicken {
public static void main(String[] args) {
for(int a=0;a<=20;a++){//鸡翁
for (int b=0;b<=33;b++){//鸡母
for(int c=0;c<=100;c++){//鸡雏
if(a+b+c==100){
if(a*5+b*3+c/3==100&&c%3==0){
System.out.println("鸡翁:"+a+",鸡母:"+b+",鸡雏:"+c);
}
}
}
}
}
}
}
5.案例5:数组求和
需求:有这样一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,要求是:求和的元素个位和十位都不能是7,并且只能是偶数。
package com.szy001;
public class ArraySum {
public static void main(String[] args) {
int sum=0;
int[] arr={68,27,95,88,171,996,51,210};
for(int i=0;i<arr.length;i++){
if(arr[i]%2==0){
if(arr[i]%10!=7&&arr[i]/10%10!=7){
sum=sum+arr[i];
}
}
}
System.out.println("元素和为:"+sum);
}
}
6.案例6:数组内容相同
需求:设计一个方法,用于比较两个数组的内容是否相同
package com.szy001;
public class ArrayCompare {
public static void main(String[] args) {
int[] arr1={1,2,4,5,7,9};
int[] arr2={1,2,4,5,7,9};
boolean result=Compare(arr1,arr2);
System.out.println(result);
}
public static boolean Compare(int[] a,int[] b){
if(a.length!=b.length){
return false;
}
else{
for(int i=0;i<a.length;i++){
if(a[i]!=b[i]){
return false;
}
}
}
return true;
}
}
7.案例7:查找
需求:已知一个数组arr={19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值。
package com.szy001;
import java.util.Scanner;
public class FindValue {
public static void main(String[] args) {
//创建对象
Scanner sc=new Scanner(System.in);
int[] arr={19,28,37,46,50};
int number=sc.nextInt() ;
int i=findValue(number,arr);
if(i==-1){
System.out.println("无此数据!");
}else{
System.out.println("序号是:"+i);
}
}
public static int findValue(int a,int[] arr) {
for (int i=0; i < arr.length; i++){
if(a==arr[i]){
return i;
}
}
return -1;
}
}
8.案例8:反转
需求:已知一个数组arr={19,28,37,46,50};用程序实现把数组中的元素值交换,交换后的数组arr={50,46,37,28,19};并在控制台输出交换后的数组元素。
package com.szy001;
public class Reversal {
public static void main(String[] args) {
int[] arr={19,28,37,46,50};
for(int i=0;i<(arr.length+1)/2;i++){
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
System.out.println("反转数组如下:");
for(int j=0;j<arr.length;j++) {
if(j==0){
System.out.print("[" + arr[j] + ",");
}
else if(j==arr.length-1) {
System.out.println(arr[j] + "]");
}else{
System.out.print(arr[j]+",");
}
}
}
}
9.案例9:评委打分
需求:在编程竞赛中,有6个评委为参赛选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
package com.szy001;
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
int max;//最大值
int min;//最小值
int total=0;//输入数的总值
//创建数据
Scanner sc=new Scanner(System.in);
System.out.println("请输入6个分数:");
int[] arr=new int[6];
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt();//输入数据
total+=arr[i];//求总值
}
min=arr[0];
max=arr[0];
for(int j=0;j<arr.length;j++){
if(min>arr[j]){
min=arr[j];//求最小值
}
if(max<arr[j]){
max=arr[j];//求最大值
}
}
int average=(total-max-min)/4;
System.out.println("平均数为:"+average);
}
}