1.减肥计划if版
-
代码编写:
一、减肥计划if版本
//创建对象
Scanner input = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = input.nextInt();
if (week<1||week>7){
System.out.println("输入错误!请输入一个1-7的整数");
}else if(week==1){
System.out.println("今天是周一,健身计划是跑步");
}else if(week==2){
System.out.println("今天是周三,健身计划是游泳");
}else if(week==3){
System.out.println("今天是周三,健身计划是慢走");
}else if(week==4){
System.out.println("今天是周四,健身计划是动感单车");
}else if(week==5){
System.out.println("今天是周五,健身计划是拳击");
}else if(week==6){
System.out.println("今天是周六,健身计划是爬山");
}else{
System.out.println("今天是周日,吃一顿放纵餐!");
}
-
代码运行测试:
-
输出一个边界数据测试
-
输出一个报错数据测试
-
-
2.减肥计划switch版
-
代码编写:
//创建对象
Scanner input = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = input.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("输入错误!请输入一个1-7的整数");
}
-
代码运行测试:
- 输出一个边界数据测试
- 输出一个报错数据测试
3.逢七过
-
代码编写:
//逢七过
//i%7==0:代表是7的倍数的数字
//i%10==7:代表是代表个位数是7的数字
//i/7%10==7:代表是代表十位数是7的数字
for(int i=1;i<100;i++){
if (i/10%10==7||i%10==7||i%7==0){
System.out.println(i);
}
}
-
代码运行测试
4.不死神兔
- 程序运行过程:这道题的原理和斐波那契数列同理,数据是1,1,2,3,5,8,13....,规律是第三个数是前面两个数之和,以此类推,所以循环内部执行过程 是:arry[2]=arry[0]+arry[1]、 arry[3]=arry[1]+arry[2]、 arry[4]=arry[2]+arry[3]
-
代码编写:
//不死神兔
//1,1,2,3,5,8,13....
int[] arry = new int[20];
arry[0] = 1;
arry[1] = 1;
for (int i = 2; i < arry.length; i++) {
[i] = arry[i - 2] + arry[i - 1];
}
System.out.println("第二十个月兔子的对数是:"+arry[19]);
-
代码运行测试:
5.百钱百鸡
-
代码编写:
//百钱百鸡:100文钱买100只鸡
//公鸡:5、母鸡:3、3只小鸡:1
int count=0;
for(int x=0;x<=20;x++){
for(int y=0;y<=33;y++){
int z=100-x-y;
if(z%3==0 && 5*x+3*y+z/3==100) {
count += 1;
System.out.println(x + "," + y + "," + z);
}
}
}
System.out.println("总共有"+count+"种买法");
-
程序运行结果:
6.数组元素内容相同
- 主函数:用于数组初始化定义、方法调用
-
定义一个方法,用于比较两个数组的内容是否相同
-
代码运行测试:
-
利用两个不同的数组测试
-
利用两个相同的数组测试
-
-
- 代码编写:
public static void main(String[] args) {
//数组内容相同
int[] arr1={11,22,33,44};
int[] arr2={11,22,33,44};
//调用方法,用变量接受
boolean result=compare(arr1,arr2);
System.out.println(result);
}
//定义一个方法,用于比较两个数组的内容是否相同
public static boolean compare(int[] arr1,int[] arr2) {
if (arr1.length != arr2.length) {
return false;
}
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
7.数组元素查找
-
代码运行测试:
-
输出一个边界数据测试
-
输出一个报错数据测试
-
-
-
代码编写:
public static void main(String[] args) {
//数组查找
int[] arry={19,28,37,46,50};
//键盘录入要查找的数据,用一个变量接受
Scanner input=new Scanner(System.in);
System.out.println("请输入要查找的数据:");
int number=input.nextInt();
//定义一个存储索引的遍历
int flag=-1;
for(int i=0;i<arry.length;i++){
if(arry[i]==number){
flag=i;
break;
}
}
System.out.println("index:"+flag);
}
-
利用方法实现:
-
主函数:用于数组初始化定义、方法调用
- 定义一个方法,用于比较两个数组的内容是否相同
-
代码运行测试:
- 代码编写:
public static void main(String[] args) {
//数组查找
//定义一个数组,用静态初始化完成数组元素的初始化
int[] arry = {19, 28, 37, 46, 50};
//键盘录入要查找的数据,用一个变量接受
Scanner input = new Scanner(System.in);
System.out.println("请输入要查找的数据:");
int number = input.nextInt();
//调用方法
int flag=getIndex(arry,number);
System.out.println("index:" + flag);
}
public static int getIndex(int[] arry, int number) {
int flag = -1;
for (int i = 0; i < arry.length; i++) {
if (arry[i] == number) {
flag = i;
break;
}
}
//返回索引值
return flag;
}
8.数组元素求和
-
代码运行测试:
-
代码编写:
public static void main(String[] args) {
//数组元素求和
int[] arrs={68,27,95,88,171,996,51,210};
int sum=0;
for(int x=0;x<arrs.length;x++){
if(arrs[x]%2==0 && arrs[x]%10!=7 && arrs[x]/10%10!=7){
sum+=arrs[x];
System.out.println(arrs[x]);
}
}
System.out.println("累加和为:"+sum);
}
9.数组元素反转
- 在主函数里实现数组反转
- 在方法中完成数组遍历输出
-
程序运行结果:
-
代码编写(完整版):
- 我们定义一个方法实现功能之后,千万不要忘记在主函数调用这个方法噢,不然控制台是不会显示数据的
public static void main(String[] args) {
//数组元素反转
//定义一个数组,用静态初始化完成数组元素的初始化
int[] arr={19,28,37,46,50};
//for循环遍历数组,定义两个索引变量,判断条件是开始索引小于等于结束索引
for(int start=0,end=arr.length-1;start<=end;start++,end--){
int tempt=arr[start];
arr[start]=arr[end];
arr[end]=tempt;
}
//调用方法
printArray(arr);
}
//------定义一个方法输出数组倒序的元素----------
public static void printArray(int[] arr){
System.out.print("输出反转后的数组:");
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("]");
}
-
定义一个数组反转的方法
- 如果觉得主函数里的代码太多了,我们也可以再定义一个让方法,把for循环拿进去
代码编写(完整版):
public static void main(String[] args) {
//数组元素反转
//定义一个数组,用静态初始化完成数组元素的初始化
int[] arr={19,28,37,46,50};
//调用数组反转的方法
reverse(arr);
//调用遍历数组输出的方法
printArray(arr);
}
public static void reverse(int[] arr) {
//for循环遍历数组,定义两个索引变量,判断条件是开始索引小于等于结束索引
for(int start=0,end=arr.length-1;start<=end;start++,end--){
/*end=arr.length-1是因为数组的索引是从0开始的,
所以数组的长度-1才是我们要获取到的数组最后一个元素的索引值*/
// 变量交换
int tempt=arr[start];
arr[start]=arr[end];
arr[end]=tempt;
}
}
//------定义一个方法输出数组倒序的元素----------
public static void printArray(int[] arr){
System.out.print("输出反转后的数组:");
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("]");
}
10.评委打分
- 定义数组,动态初始化数组元素
- 这是第一种用输出语句实现存储评委打的分数,但是语句太多了,所以我们用for循环改进一下
- 这是第一种用输出语句实现存储评委打的分数,但是语句太多了,所以我们用for循环改进一下
- 用for循环实现手动录入数据
- 定义一个输出方法,并且调用,我们先来测试一下代码,是否能正确输出数组
- 下面是代码的运行测试
- 定义两个方法,分别获取分数的最大值和最小值,这个在我之前写的数组的基础里有说到,需要的可以去看一下这篇文章http://t.csdnimg.cn/RAn2d
- 再定义一个用来实现数组求和的方法
- 最后,我们再来看一下主函数里面按照计算规则得到平均分,和所有方法的调用
- 最后,我们再来看一下主函数里面按照计算规则得到平均分,和所有方法的调用
- 再定义一个用来实现数组求和的方法
- 定义两个方法,分别获取分数的最大值和最小值,这个在我之前写的数组的基础里有说到,需要的可以去看一下这篇文章http://t.csdnimg.cn/RAn2d
- 下面是代码的运行测试
-
代码运行测试:
-
代码编写(完整版):
public static void main(String[] args) {
//评委打分
//定义一个数组,用动态初始化完成数组元素的初始化、长度为6
int[] arr=new int[6];
//创建对象,完成键盘录入评委分数
Scanner input=new Scanner(System.in);
//接受对象,存储6个评委打的分数
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个评委的打分:");
arr[i]=input.nextInt();
}
//调用获取到最大值的方法
int max=getMax(arr);
//调用获取到最小值的方法
int min=getMin(arr);
//调用数组元素求和的方法
int sum=getSum(arr);
//按照计算规则计算得到平均分
int avg=(sum-max-min)/(arr.length-2);
System.out.println("选手的最终得分是:"+avg);
//调用遍历数组输出的方法
printArray(arr);
}
//------这一个方法是用来获取到数组中最高分----------
public static int getMax(int[] arr){
int max=arr[0];
for(int i=0;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=0;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;
}
//------这一个方法是用来遍历数组,输出数组元素----------
public static void printArray(int[] arr){
System.out.print("所有评委的打分结果是:");
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("]");
}
}
- 当然像我这种懒人不想一个一个手动去输入随机分数,也可以用随机数来随机获取评委的随机值
这个应该是从更新Java基础里代码最多的一道题目啦!
11.结语
Java基础专栏到这里更一半了,这篇是对于之前讲的所有知识点的综合应用,从下一章节开始会稍稍的上一些难度,会给大家详细讲解java中面向对象的原理以及类和对象的引用,Java基础的小项目,小编会持续为大家带来更多知识点和优质代码,如果你喜欢的话,记得关注噢!!!