1.减肥计划:输入星期数,显示今天的减肥活动
import java.util.Scanner;
public class DebugTest01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("Enter(输入星期数) :");
//创建Scanner对象
Scanner input = new Scanner(System.in);
//定义变量
int weekDay = input.nextInt();
switch(weekDay){
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)手动导包:键盘键入" import java.util.Scanner;"
(2)快捷键导包:Alt + Enter![](https://i-blog.csdnimg.cn/blog_migrate/1b20ad0b01cf3117acb951b0bc054dc2.png)
(3)自动导包:键盘键入"Sc"就出现以下情况,然后按下"Enter"键
2.逢七过
题:控制台打印1~100之间满足逢七必过的规则的数据
(1)1~100,用for循环获取数据
(2)判断满足逢七必过的规则的数据:包含7的数(个位数是7,十位数是7的数),能被7整除
//逢七过
import java.util.Scanner;
public class DebugTest01 {
public static void main(String[] args) {
/*从控制台打印1~100之间满足逢七必过的规则的数据
1~100,用for循环获取数据
判断满足逢七必过的规则的数据:包含7的数(个位数是7,十位数是7的数),能被7整除
*/
/*
for(int number=1;number<=100;number++){
if(number % 7 == 0 || number % 10==7 || number/10%10==7){
System.out.println(number + " pass");
}
}
*/
for(int number=1;number<=100;number++){
if(number % 7 == 0){
System.out.println(number + " pass1");
}
else if(number % 10==7){
System.out.println(number + " pass2");
}
else if(number/10%10==7){
System.out.println(number + " pass3");
}
}
}
}
3. 不死神兔
public class DebugTest01 {
public static void main(String[] args) {
/*
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子不死,问第20个月的兔子对数为多少?
1月:1对
2月:1对
3月:2对= 1 + 1
4月:3对 = 1 + 2
5月:5对 = 2 + 3
6月:8对 = 3 + 5
7月:13对 = 5 + 8
.....
数组模拟:
arr[0] = 1;
arr[1] = 1;
arr[2] = arr[0] + arr[1];
arr[3] = arr[1] + arr[2];
arr[4] = arr[2] + arr[3];
arr[5] = arr[3] + arr[4];
......
arr[i] = arr[i-2] + arr[i-1];
*/
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.百钱百鸡
public class DebugTest01 {
public static void main(String[] args) {
/*
百钱百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一
百钱买百鸡,问鸡翁、鸡母、鸡雏各几只
*/
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){
System.out.println("鸡翁" + x +"鸡母"+ y + "鸡雏" + z);
}
}
}
}
}
5.数组元素求和
public class DebugTest01 {
public static void main(String[] args) {
/*
需求:有这样的一个数组,元素是{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] % 2 == 0 && arr[i]%10 != 7 && arr[i] /10 % 10 != 7){
sum += arr[i];
}
}
System.out.println("sum:" + sum);
}
}
6.数组内容相同
public class DebugTest01 {
public static void main(String[] args) {
/*
需求:设计一个方法,用于比较两个数组的内容是否相同
思路:
(1)定义两个数组,分别使用静态初始化完成数组元素的初始化
(2)定义一个方法,用于比较两个数组的内容是否相同
返回值类型:boolean
参数:int[] arr, int[] arr2
(3)比较两个数组的内容是否相同,按照下面的步 聚实现就可以了
首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
最后循环遍历结束后,返回true
*/
int[] arr = {11,22,32,44,55};
int[] arr2 = {11,22,33,44,55};
//调用方法,用变量接收boolean
boolean flag = compareArray(arr,arr2);
System.out.println(flag);
}
public static boolean compareArray(int[] arr,int[] arr2){
//首先比较数组长度,如果两个数组的长度不相同,数组内容肯定不相同
if(arr.length != arr2.length){
return false;
}
//其次遍历,比较数组中的每一个元素,只要元素不相同,返回false
for(int i=0;i<arr.length;i++){
if(arr[i] != arr2[i]){
return false;
}
}
return true;
}
}
7. 查找
(1)法1 :直接写入
import java.util.Scanner;
public class DebugTest01 {
public static void main(String[] args) {
/*
需求:已知一个数组arr = {19, 28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引1值。
*/
int[] arr = {19,28,37,46,50};
//初始化索引变量
int index = -1;
System.out.println("Enter the number:");
//创建Scanner对象
Scanner input = new Scanner(System.in);
int number = input.nextInt();
for(int i=0;i<arr.length;i++){
if(number == arr[i]){
index = i;
break;
}
}
System.out.println("index: " + index);
}
}
(2)法2 : 调用方法 (查找指定的数据在数组中的索引)
import java.util.Scanner;
public class DebugTest01 {
public static void main(String[] args) {
/*
需求:已知一个数组arr = {19, 28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引1值。
*/
int[] arr = {19,28,37,46,50};
System.out.println("Enter the number:");
//创建Scanner对象
Scanner input = new Scanner(System.in);
int number1 = input.nextInt();
//定义index1接收getIndex方法中的下标值index
int index1 = getIndex(arr,number1);
System.out.println("index: " + index1);
}
/*定义一个方法:查找指定的数据在数组中的索引
返回值类型:int
参数:int[] arr
*/
public static int getIndex(int[] arr,int number){
int index = -1; //初始化下标值index必须在数组下标值的范围之外
for(int i=0;i<arr.length;i++){
if(number == arr[i]){
index = i;
break;
}
}
return index;
}
}
8. 反转
//反转
public class DebugTest01 {
public static void main(String[] args) {
/*
反转需求:
已知一个数组arr= {19,28,37,46,50}; 用程序实现把数组中的元素值交换,
交换后的数组arr= {50,46,37,28,19}; 并在控制台输出交换后的数组元素。
*/
//定义一个数组,静态初始化数组
int[] arr= {19,28,37,46,50};
/*
反转数组中的元素 法1:
//循环遍历数组,初始化语句定义2个索引变量,判断条件是开始索引小于结束索引
for(int start=0,end=arr.length-1;start<=end;start++,end--){
//变量交换(首尾交换)
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
*/
//调用方法:反转数组中的元素
reverse(arr);
//调用方法:遍历数组
printArray(arr);
}
/*
反转数组中的元素 法2:
2个明确:
返回类型:void
参数:int[] arr
*/
public static void reverse(int[] arr){
//循环遍历数组,初始化语句定义2个索引变量,判断条件是开始索引小于结束索引
for(int start=0,end=arr.length-1;start<=end;start++,end--){
//变量交换(首尾交换)
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
/*
打印交换后的数组:
两个明确:
返回类型:void
参数:int[] 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.评委打分
//评委打分
import java.util.Scanner;
public class DebugTest01 {
public static void main(String[] args) {
/*
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值(不考虑小数部分)。
思路:
①定义一个数组,用动态初始化完成数组元素的初始化,长度为6
② 键盘录入评委分数
③由于是6个评委打分,所以,接收评委分数的操作,用循环改进
④ 定义方法实现获取数组中的最高分(数组最大值),调用方法
⑤ 定义方法实现获取数组中的最低分(数组最小值),调用方法
⑥定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
⑦按照计算规则进行计算得到平均分
⑧输出平均分
*/
//①定义一个数组,用动态初始化完成数组元素的初始化,长度为6
int[] arr = new int[6];
//② 键盘录入评委分数
//③由于是6个评委打分,所以,接收评委分数的操作,用循环改进
for(int i=0; i<arr.length;i++){
//创建Scanner对象
Scanner input = new Scanner(System.in);
System.out.print("请输入第" + (i+1) +"个评委的打分 :");
arr[i] = input.nextInt();
}
//④ 定义方法实现获取数组中的最高分(数组最大值),调用方法
int max = getMax(arr);
//⑤ 定义方法实现获取数组中的最低分(数组最小值),调用方法
int min = getMin(arr);
//⑥定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
int sum = getSum(arr);
//⑦按照计算规则进行计算得到平均分(去掉最高分和最低分)
int average = (sum - max - min)/(arr.length-2);
//⑧输出平均分
System.out.println("选手的最终得分(平均分)是:" + average);
}
/*
④ 定义方法实现获取数组中的最高分(数组最大值),调用方法
2个明确:
返回值:int
参数:int[] arr
*/
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;
}
/*
⑤ 定义方法实现获取数组中的最低分(数组最小值),调用方法
2个明确:
返回值:int
参数:int[] arr
*/
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;
}
/*
⑥定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
2个明确:
返回值类型:int
参数:int[] arr
*/
public static int getSum(int[] arr){
int sum = 0;
for(int i=0; i<arr.length; i++) {
sum += arr[i];
}
return sum;
}
}